gpt4 book ai didi

mysql - 使用子查询连接表

转载 作者:行者123 更新时间:2023-11-30 22:14:57 25 4
gpt4 key购买 nike

我有一些表:tableA (cola1, cola2, cola3, cola4, cola5)表 B (colb1, colb2)表 C (colc1, colc2, colc3)tableA.cola2 引用 tableB.colb1而 tableA.cola3 指的是 tableC.colc1我想从所有这些表中检索数据,我有一个使用 join 的查询,如下所示:

Select tableA.cola1, tableA.cola2, tableA.cola3, tableA.cola4, tableA.cola5, tableB.colb2, tableC.colc2, tableC.colc3
FROM tableA
INNER JOIN tableB ON tableA.cola2 = tableB.colb1
INNER JOIN tableC ON tableA.cola3 = tableC.colc1
WHERE tableA.cola5 = 'something'

那么,是否可以使用子查询而不是 JOIN 来编写此查询?什么会更好?子查询还是 JOIN?我的一个 friend 告诉我,当你有大表时,JOIN 很慢并且需要一台功能强大的计算机,而子查询速度更快并且不需要功能强大的计算机来执行选择。他说这是因为子查询返回结果是基于加法之类的,而JOIN返回结果是基于乘法之类的(我英语不好,所以我不知道怎么说,但希望你明白)。我是新手,我试过用谷歌搜索,但仍然不明白。有人能抽出时间回答我的问题并向我解释这个子查询与 JOIN 的关系吗?非常感谢。

最佳答案

在大多数情况下,JOIN 比子查询更快,而且子查询更快的情况非常罕见。

JOINs RDBMS 可以创建一个更适合您的查询的执行计划,并且可以预测应该加载哪些数据以进行处理并节省时间,这与子查询不同,子查询将运行所有查询并加载所有数据以进行处理处理。

关于mysql - 使用子查询连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38711785/

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