MySQL 存在于何处,mySQL 如何链接行?
我在理解这段代码时遇到问题
SELECT * FROM sometable WHERE EXISTS (
SELECT 1 FROM sometable
GROUP BY relevant_field
HAVING count(*) > 1)
如果我使用 JOIN,我会显式指定链接,但在这里我没有,所以我对 MySQL 内部发生的事情没有清晰的概念。
MySQL 如何知道如何将内部某个表的行链接到外部某个表?
I'm having a problem grokking this code
SELECT * FROM sometable WHERE EXISTS (
SELECT 1 FROM sometable
GROUP BY relevant_field
HAVING count(*) > 1)
If I use a JOIN, I specify the link explicitly, but here I don't so I don't have clear concept of what's happening inside MySQL.
How does MySQL know how to link the rows from the inner sometable to the outer sometable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的查询将返回
sometable
中的所有行,或者根本不返回任何行,具体取决于带括号的 SELECT 是否返回行。换句话说,MySQL 不知道如何也不会在这个特定查询中将行从内部某个表链接到外部某个表。
相当于连接的是:
Your query as it is will either returns all rows from
sometable
or no rows at all, depending on whether the parenthesized SELECT will return rows or not.In other words, MySQL does not know how to and will not link the rows from the inner to the outer sometable in this particular query.
The equivalent to a join would be: