学员表

SELECT * FROM tb_address;

SQL join的介绍-LMLPHP

SELECT * FROM tb_student

SQL join的介绍-LMLPHP

1.JOIN关联两个表数据,将匹配数据展示,数据无匹配值则不展示

注释:INNER JOIN与JOIN是相同

SELECT
*
FROM
tb_student stu
JOIN tb_address address
ON stu.`id` = address.`stu_id` ;

SQL join的介绍-LMLPHP

SQL join的介绍-LMLPHP

2.LEFT JOIN返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替。

举例如下 从 student角度查询对应的address数据,student信息全部展示,没有对应address值展示null

SELECT

*
FROM
tb_student stu
LEFT JOIN tb_address address
ON stu.`id` = address.`stu_id` ;

SQL join的介绍-LMLPHP

SQL join的介绍-LMLPHP

3.RIGHT JOIN返回右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替。

举例如下 从 address角度查询对应学员信息,address表数据全部展示,无对应学员信息则展示null

SELECT

*
FROM
tb_student stu
RIGHT JOIN tb_address address
ON stu.`id` = address.`stu_id` ;

SQL join的介绍-LMLPHP

SQL join的介绍-LMLPHP

4.FULL JOIN 会从左表 和右表 那里返回所有的行。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用NULL代替

不常用,有时候数据库不支持

SQL join的介绍-LMLPHP

05-11 18:24