left join 和right join的区别?

876 阅读1分钟
  • left join: 返回包括左表中的所有记录右表中连接字段相等的记录,如果右表中没有对应数据,按null补充

  • right join: 返回包括右表中的所有记录左表中连接字段相等的记录,如果左表中没有对应数据,按null补充

  • inner join: 只返回两个表中连接字段相等的行都不是null才返回

现在有两个表,表a:

image.png

表b:

image.png

  • 左连接:select * from a left join b on a1=b1;

image.png

由于b中没有a1=4的记录,所以用null填充返回

  • 右连接:select * from a right join b on a1=b1; image.png

由于a中没有b1=5的字段,用null填充返回

  • 内连接: select * from a inner join b on a.a=b.a;

image.png

a字段只有a=6和a=8相等,而null相等是不返回