mysql多表连接的几种写法

在数据库进行多张表的查询,必定会用到多表关联,只要是多表关联,就会产生笛卡儿积(什么是笛卡儿积:最简单的解释,就是你要关联的每张表总记录的乘积),所以一定要写关联条件。关联条件就是在所产生的笛卡儿积之间筛选数据。

多表连接主要分为:inner join与outer join

实验:

 table_a            table_b
id   value           id     value
1      va1          1      vb1
2      va2          3      vb3
4      va4          4      vb4

inner join(也可直接用,号替代,后加where关联条件),用on来关联条件。只查询满足关联条件的数据,结果集小于等于两表之间记录行数的最小值

1 select * from table_a t,table_b t1 where t.id=t1.id;
2 
3 select * from table_a t inner join table_b t1 on t.id=t1.id;

  id  value  id  value
  1   va1   1    vb1
  4   va4   4    vb4

outer join

  left (outer) join:已左边表的记录为基准,右边表中找不到则补null。结果集等于左表记录的行数

1 select * from table_a t left join table_b t1 on t.id=t1.id;

  id  value  id  value
  1   va1   1    vb1
  2   va2   null  null
  4   va4   4    vb4

  right (outer) join:已右边表的记录为基准,左边表中找不到则补null。结果集等于右表记录的行数

1 select * from table_a t right join table_b t1 on t.id=t1.id;

  id  value  id  value
  1   va1   1    vb1
null null   3   vb3
  4   va4   4    vb4


原文地址:https://www.cnblogs.com/July74/p/5336128.html