MySQL连接查询
连接查询
多表查询,查询的字段来自于多个表
笛卡尔乘积现象:表1有n行,表2有m行,没有连接顺序则出现mn行
添加连接条件
where a.id = b.id
连接查询的分类
按年代:
sql192 - 仅支持内连接
sql199 支持内连接+外连接(左外、右外)+交叉
按功能分类:
内连接:等值连接
非等值连接
自连接
外连接:左外连接
右外连接
全外连接
交叉连接
SQL92语法
等值连接
为表起别名
如果为表起了别名,查询字段中原来表名不可用
用and在where后加筛选
多表等值连接=多表的交集部分
n个表,有n-1个连接条件
非等值连接
where xx between xx and xx
自连接
将同一张表分别名两个,然后两个查询等值
sql199语法
语法:select 查询列表
from 表1 别名
连接类型 [inner|left|right|full]
join 表2 别名
where
group by
having
order by
内连接 inner
类似于SQL92语法
外连接 left|right|full
外连接查询结果=内连接结果+主表有而从表没有的记录
左外连接主表为左表
右外连接主表为右表
全外连接两表都存在
交叉连接:cross
笛卡尔乘积

浙公网安备 33010602011771号