[英]How is inner join different from normal multi-table selection?
我有两个查询:
SELECT m.id, m.name, f.type, c.id
FROM main AS m, filter AS f, city AS c
WHERE m.id = f.id AND c.name = m.city;
和
SELECT m.id, m.name, f.type, c.id
FROM main AS m
INNER JOIN filter as f ON m.id = f.id
INNER JOIN city AS c ON c.name = m.city;
两者都应该给我相同的一组输出。 我为一组较小的值运行它们,但效果很好,但是当我为一组较大的值运行它们时,它们都返回非常不同的行数(第一个返回约500K行,而第二个返回约65K行)。 这两个查询有什么区别吗?
[编辑]:
我正在使用mysql作为RDBMS。
即使在查询#2是推荐的标准时也是如此。 两个查询应返回相同的结果。
我的建议。 比较那些分开的联接查询
SELECT m.id, m.name, f.type
FROM main AS m, filter AS f
WHERE m.id = f.id;
SELECT m.id, m.name, f.type
FROM main AS m
INNER JOIN filter as f ON m.id = f.id;
接着
SELECT m.id, m.name, c.id
FROM main AS m, city AS c
WHERE c.name = m.city;
SELECT m.id, m.name, f.type, c.id
FROM main AS m
INNER JOIN city AS c ON c.name = m.city;
让我们知道是否有任何区别。 (不可以)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.