我是一个老式的 MySQL 用户,并且一直更喜欢JOIN子查询。但是现在每个人都使用子查询,我讨厌它;我不知道为什么。
JOIN
我缺乏理论知识来自己判断是否有任何区别。子查询是否与 a 一样好JOIN,因此无需担心?
取自 MySQL 手册 (13.2.10.11 Rewriting Subqueries as Joins):
LEFT [OUTER] JOIN 可能比等效的子查询更快,因为服务器可能能够更好地优化它——这一事实并非仅适用于 MySQL 服务器。
所以子查询可能比 慢LEFT [OUTER] JOIN,但在我看来,它们的优势是可读性略高。
LEFT [OUTER] JOIN