gpt4 book ai didi

mysql - 哪种方法更好地连接 mysql 表?

转载 作者:可可西里 更新时间:2023-11-01 07:42:21 26 4
gpt4 key购买 nike

这两种从多个表中选择数据的方法有什么区别。第一个不使用 JOIN 而第二个使用。首选哪种方法?

方法一:

SELECT t1.a, t1.b, t2.c, t2.d, t3.e, t3.f
FROM table1 t1, table2 t2, table3 t3
WHERE t1.id = t2.id
AND t2.id = t3.id
AND t3.id = x

方法二:

SELECT t1.a, t1.b, t2.c, t2.d, t3.e, t3.f
FROM `table1` t1
JOIN `table2` t2 ON t1.id = t2.id
JOIN `table3` t3 ON t1.id = t3.id
WHERE t1.id = x

最佳答案

对于您的简单情况,它们是等效的。即使方法 #1 中不存在“JOIN”关键字,它仍在进行连接。

但是,方法 #2 提供了灵 active ,允许在 JOIN 条件中使用无法通过 WHERE 子句实现的额外条件。例如当您对同一个表执行别名多重联接时。

select a.id, b.id, c.id
from sometable A
left join othertable as b on a.id=b.a_id and some_condition_in_othertable
left join othertable as c on a.id=c.a_id and other_condition_in_othertable

将两个额外条件放在 where 子句中会导致查询不返回任何内容,因为两个条件在 where 子句中不能同时为真,但在连接中是可能的。

关于mysql - 哪种方法更好地连接 mysql 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5779158/

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