多表查询:从多个表中查询数据。
1、内连接
SQL86 语法:
select 要投影的列 from 表1,表2..... where 连接条件
SQL99 语法:
select 要投影的列 from 左表 inner join 右边 on 连接条件
等值连接:
使用等号作为连接条件的连接。
非等值连接:
不使用等号作为连接条件。
自联结:
连接自身。
交叉连接(SQL99):
取两个表的笛卡尔积 。
from 左表 cross join 右表
自然连接(SQL99):
把两个表相同名字的列的值是否相等 作为连接条件。支持多个列名相等。但是若值的类型不同,会执行失败。(类似于等值连接)
from 左表 natural join 右表
using子句:
使用指定的列作为连接条件,它作为自然连接的限制。引用被using指定的列时,不要使用表名或者别名。
from 左表 join 右表 using(列名1,列名2...) 这里实际上是自然连接,但是natural和using不能同时出现。
2、外连接
- 左外连接:结果集包含左表中不符合连接条件的行。
- 右外连接:结果集包含右表中不符合连接条件的行。
- 全外连接:结果集中包含左右表中不符合连接条件的行。
SQL99 语法:
左外连接:from 左表 left outer join 右表 on 连接条件 右外连接:from 左表 right outer join 右表 on 连接条件 全外连接:from 左表 full outer join 右表 on 连接条件
3、子查询
当一个查询的结果是另一个查询的条件时,称为子查询语句。
标签:join,条件,查询,右表,SQL,左表,多表,连接 From: https://www.cnblogs.com/lurenjia-bky/p/16977539.html