gpt4 book ai didi

sql - mysql查询。 Join 和 SubQuery 有什么区别?

转载 作者:行者123 更新时间:2023-11-29 03:15:02 24 4
gpt4 key购买 nike

我总是虽然 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 往往具有更好的性能,但在某些情况下可能并非如此,特别是对于每个数据库(包括版本)。

引用:

关于sql - mysql查询。 Join 和 SubQuery 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1652164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com