08 多表查询

一、多表连接查询
1.语法:
SELECT 字段列表
    FROM 表1 INNER|LEFT|RIGHT JOIN 表2
    ON 表1.字段 = 表2.字段;

2.生成笛卡尔积:不适用任何一种匹配规则
select * from employee,department;  # 直接查询两个表

3.内连接:inner join,只连接匹配的行

4.外连接之左连接:left join,优先显示左表记录

5.外连接之右连接;优先显示右表全部记录

6.全外连接:显示左右两个表全部记录(了解)
#外连接:在内连接的基础上增加左边有右边没有的和右边有左边没有的结果
#注意:mysql不支持全外连接 full JOIN
#强调:mysql可以使用此种方式间接实现全外连接
select * from employee left join department on employee.dep_id = department.id
       union all
      select * from employee right join department on employee.dep_id = department.id;

select * from emp left join dep on emp.dep_id = dep.id
   union
  select * from emp right join dep on emp.dep_id = dep.id;

二、符合条件连接查询
根据where条件进行筛选查询。

三、子查询

1:子查询是将一个查询语句嵌套在另一个查询语句中。
2:内层查询语句的查询结果,可以为外层查询语句提供查询条件。
3:子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字。
4:还可以包含比较运算符:= 、 !=、> 、<等。

参考博客:https://www.cnblogs.com/majj/p/9174404.html

原文地址:https://www.cnblogs.com/mayugang/p/10222844.html