彻底理解inner join、left join和right join

实例:student表和对应的grade成绩表

彻底理解inner join、left join和right join_第1张图片

彻底理解inner join、left join和right join_第2张图片
1. inner join 可以理解为"有效的连接",就是根据on后面的关联条件,两张表中都有的数据才会显示
SELECT
    *
FROM
    student stu
 INNER JOIN grade gra on stu.id = gra.c_stuId

彻底理解inner join、left join和right join_第3张图片

2. left join 理解为"主全显,后看on" (主表数据不受影响)左表数据会全部显示出来,连接后的表看on后面的选择条件,如果没有数据则显示为null
SELECT
    *
FROM
    student stu
 LEFT JOIN grade gra on stu.id = gra.c_stuId

3. right join 理解为"主看on,后全显" (右表数据不受影响),即右表数据全部显示,主表数据看on后面的选择条件
SELECT
    *
FROM
    student stu
 RIGHT JOIN grade gra on stu.id = gra.c_stuId

彻底理解inner join、left join和right join_第4张图片

你可能感兴趣的:(mysql)