gpt4 book ai didi

mysql - 如果无需 JOIN 就可以从多个表中进行选择,为什么还要使用 JOIN?

转载 作者:行者123 更新时间:2023-11-29 04:00:05 25 4
gpt4 key购买 nike

以下查询都从 posts 表和 users 表中选择数据。第一个查询使用连接,第二个不使用...我的问题是为什么要使用连接?

使用 JOIN 查询:

SELECT u.*, p.* FROM users AS u
JOIN posts AS p ON p.user_id=u.user_id
WHERE u.user_id=1

查询没有:

SELECT u.*, p.* FROM users AS u, posts AS p
WHERE p.user_id=u.user_id
AND u.user_id=1

最佳答案

第二种形式称为隐式连接。首先,大多数人认为隐式连接已弃用 秒。就个人而言,我真诚地怀疑在不久的将来任何主要的 RDBMS 都会放弃对它们的支持,但为什么要冒这个险呢?

其次,显式连接具有执行外部连接的标准方式。隐式连接有各种不可读的 hacks 解决方案(例如,Oracle 的 (+) 语法),但据我所知,没有任何标准具有合理的预期便携性。

第三,我承认这纯粹是品味问题,它们只是看起来更好看。使用显式连接允许您在逻辑上将查询中的条件分离到将所有表连接在一起所需的“脚手架”和 where 子句的实际逻辑条件。使用隐式连接,所有内容都集中在 where 子句中,只有三四个表就变得非常难以管理。

关于mysql - 如果无需 JOIN 就可以从多个表中进行选择,为什么还要使用 JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34841580/

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