MySQL连接查询(多表查询)

基本含义

  连接就是指两个或两个以上的表(数据源) “连接起来成为一个数据源”。

  连接语法的基本形式:from 表1 【连接方式】 join 表2 【on 连接条件】;

  连接的结果可以当做一个“表”来使用。

1.内连接:

  语法:from 表1 【inner】 join 表2 on 表1.字段1=表2.字段2;

  含义:找出(过滤)在交叉连接的结果表中的表1的字段1的值等于表2的字段2的值的那些行。

例如:以下是两个相关的表格product_type 和 product

         

  可以使用内连接使其结合成为一张表,这里因为两个表中都使用了protype_id,所以使用t1. t2.来代替表1和表2

  select * from product as t1 join `product_type` as t2 on t1.protype_id=t2.protype_id where 1;

结果如下:

            

   也可以指定只列出其中部分字段:

  select t1.pro_id,pro_name,price, t2.protype_name from product as t1 join `product_type` as t2 on t1.protype_id=t2.protype_id where 1;           

结果如下:

            

2.左/右(外)连接  

  形式:from  1  left/right  [outer]  join   2   on  连接条件。

  说明:

  1,这里,left/right是关键字。

  2,连接条件跟内连接一样。

  3,含义是:内连接的结果基础上,加上左/右边表中所有不符合连接条件的数据,相应放右/左边表的字段的位置就自动补为“null”值。