- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一般来说,我有一个非常简单的查询,并且不明白为什么实际执行计划在“嵌套循环”节点上进行初始选择后立即向我显示警告“无连接谓词”。
我认为该查询非常不言自明:我有用户,他们有对 Feed 的 UserSubscriptions (m:n) - 我想从用户必须订阅的一个 Feed 中查询所有 FeedItems,所以这个查询非常适合这样做嗯:
select fi.Title, fi.Content, fi.Published
from [User] u
inner join UserSubscription us on u.id = us.UserId
inner join Feed f on f.id = us.FeedId
inner join FeedItem fi on fi.FeedId = f.Id
where u.EMailAddress = 'xxx@xxx.xx'
and f.id = 3
and fi.Inserted > getdate() - 30
有趣的是,只要我忽略这个条件,就不会出现警告:
and f.id = 3
一旦我删除它,有关缺少连接谓词的警告就会消失。我不明白这里出现此警告的原因。
任何帮助理解这一点的帮助将不胜感激!
谢谢b.
最佳答案
您不需要加入 Feed 表的原因是:
f.id = us.FeedId = fi.FeedId
SELECT
或 WHERE
)都不会使用/不需要 f
(Feed)表这是一个更优化的查询:
select fi.Title, fi.Content, fi.Published
from [User] u
inner join UserSubscription us on u.id = us.UserId and us.FeedId = 3
inner join FeedItem fi on fi.FeedId = us.FeedId
where u.EMailAddress = 'xxx@xxx.xx'
and fi.Inserted > getdate() - 30
通过提前将其限制为特定的 FeedId,您可以使数据集更小,从而更快。优化器可能会为您将查询更改为此;我不确定。
关于sql-server - 添加附加条件时出现 "No Join Predicate"- 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16342582/
我有一个与此类似的循环。 int total1, total2; for (total1 = fsize(myfile);;) { total2 = fsize(myfile); ..
我已经开始了一个小项目来尝试学习一些新概念(希望是 C++ 或 Python),我只是希望在我的想法开始时得到一点帮助。 *这一切都与一个更大的梦幻篮球项目有关,但我必须从某个地方开始。 我想要 10
我有以下实体: @Entity public class User { @ManyToOne @JoinColumn(name = "group_code", referencedCo
我正在尝试使用 hibernate 条件向 Join 子句添加附加条件。事实上,有一些方法可以做到这一点: createCriteria(String associationPath, String
我是一名优秀的程序员,十分优秀!