多表查询就是从多张表中查询数据
笛卡尔积
数学中概念,两个集合,A集合和B集合的所有组合情况
select * from 表一,表二; 就会获得所有的组合情况,而我们是需要在这些组合情况中选取符合我们需求的数据
在多表查询中,就需要消除无效的笛卡尔积
连接查询
内连接
相当于A,B集合的交集
inner 可省略
字段可以用 表名.字段名 来确定
表名有时会太长可以给起个别名 这样子就必须 别名.字段名 指定各个字段
起别名: 表名+空格+别名 select * from 表1 e where e.字段...........
外连接
表1为左表 表2为右表
子查询
标量子查询
列子查询
行子查询
where 列1=值1 and 列2=值2
可以换成 where (列1,列2)=(值1,值2)
后面的(值1,值2) 就相当于行子查询返回的结果
where (列1,列2)=(行子查询)
表子查询
作为临时表 一般就放在from之后了