MySQL JOIN 有哪几种?INNER/LEFT/RIGHT/FULL 区别?
INNER JOIN:内连接,两表都匹配的行(交集);LEFT JOIN:左连接,左表全部行 + 右表匹配行(不匹配补 NULL);RIGHT JOIN:右连接,右表全部 + 左表匹配;FULL OUTER JOIN:全外连接,两边全部(MySQL 不支持,用 LEFT + UNION + RIGHT 模拟);CROSS JOIN:笛卡尔积(少用)。实现:Nested Loop Join(嵌套循环)、Hash Join(8.0.18+,无索引等值连接)、BNL/BNLH。注意:LEFT JOIN 的 ON 与 WHERE 区别(ON 控制连接条件,WHERE 过滤结果,放 WHERE 会变内连接效果)。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。