SQL join 用于把来自两个或多个表的行结合起来。
下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。(图是在菜鸟教程上找的)
首先准备两张表
employee表
department表
INNER JOIN (常用JOIN语句)
inner语句会从多个表中返回满足 JOIN 条件的所有行。
SELECT * FROM tbl_employee e INNER JOIN tbl_department d on e.d_id = d.id;
LEFT JOIN
SELECT * FROM tbl_employee e LEFT JOIN tbl_department d on e.d_id = d.id;
LEFT JOIN 会把左表全部查询出来 即使右表中没有匹配,也从左表返回所有的行;
RIGHT JOIN
SELECT * FROM tbl_employee e RIGHT JOIN tbl_department d on e.d_id = d.id;
RIGHT JOIN 会把右表表全部查询出来 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN
mysql 不支持FULL JOIN 实际上就是把两表都查询出来,
只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.
如果 "tbl_employee" 表中的行在 "tbl_department" 中没有匹配或者 "tbl_department" 表中的行在 "tbl_employee" 表中没有匹配,也会列出这些行。