mysql查询.Join 和 SubQuery 有什么区别?

本教程将介绍mysql查询.Join 和 SubQuery 有什么区别?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

mysql查询.Join 和 SubQuery 有什么区别? 教程 第1张

问题描述

我总是虽然 join 得到某些结果,然后只使用这些结果进行连接.

SELECT * FROM tbl AS t1
JOIN tbl2 AS t2 ON t1.id = t2.foreignId 
JOIN tbl3 AS t3 ON t2.id = t3.foreignId
WHERE t1.date > SOMEDATE

据我了解,它将运行 where 语句并仅获取日期范围内的结果.然后它将遍历所有 t2 并且仅尝试匹配连接到 t1 的 id(这可能会使结果更小).然后使用这个较小的潜在结果,它将对 T3 执行相同的操作并输出最终结果.

但它似乎不是这样工作的?并且表格成倍增加而不是变小.显然我上面描述的更像是子查询?(注意我说的是 LIKE.我不知道子查询是怎么工作的)

JOIN 是怎么工作的,JOIN 和子查询有什么区别?

我同时使用 MySql 和 SQLite.我不知道那是否相关.

推荐答案

如果子查询中使用的表返回值两次,JOIN 也会返回匹配的行两次,而 IN 或 EXISTS 条件只会返回一次.

JOIN 往往具有更好的性能,但在某些情况下可能并非如此,尤其是每个数据库(包括版本).

参考:

IN vs. JOIN vs. EXISTS

好了关于mysql查询.Join 和 SubQuery 有什么区别?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。