mysql 多表查询

1.重点:外链接语法

语法:

SELECT 字段列表
    FROM 表1 INNER|LEFT|RIGHT JOIN 表2
    ON 表1.字段 = 表2.字段;
(1)先看第一种情况交叉连接:不适用任何匹配条件。生成笛卡尔积(关于笛卡尔积的含义,大家百度自行补脑)。
  SELECT 字段列表
      FROM 表1,表2;

(2)内连接:只连接匹配的行,
  找两张表共有的部分,相当于利用条件从笛卡尔积结果中筛选出了匹配的结果
  SELECT 字段列表
      FROM 表1 INNER JOIN 表2
      ON 表1.字段 = 表2.字段;
(3)外链接之左连接:优先显示左表全部记录

以左表为准,即找出所有员工信息,当然包括没有部门的员工 本质就是:在内连接的基础上增加左边有,右边没有的结果
  SELECT 字段列表
      FROM 表1 LEFT JOIN 表2
      ON 表1.字段 = 表2.字段;
(4) 外链接之右连接:优先显示右表全部记录
以右表为准,即找出所有部门信息,包括没有员工的部门
本质就是:在内连接的基础上增加右边有,左边没有的结果
  SELECT 字段列表
      FROM 表1 RIGHT JOIN 表2
      ON 表1.字段 = 表2.字段;
2.子查询
#1:子查询是将一个查询语句嵌套在另一个查询语句中。
#2:内层查询语句的查询结果,可以为外层查询语句提供查询条件。
#3:子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字
#4:还可以包含比较运算符:= 、 !=、> 、<等
 









  

 
原文地址:https://www.cnblogs.com/zhaosijia/p/9581276.html