1.交叉连接查询
返回两个或多个表所有数据行的笛卡儿积,没有where子句
select* from store,stuff;
2.内连接查询
普通的连接类型,而且是最匀称的,添加where子句
select 列名 from 表1,表2 where 表1.列名1=表2.列名2
select 列名 from 表1 inner join 表2 on 表1.列名1=表2.列名2;
select 列名 from 表1 cross join 表2 on 表1.列名1=表2.列名2;
select sto.* sta.firstName from store sto inner join staff sta on sto.manager_id = sta.staff_id
3.外连接查询
左连接,右连接
select 列名 from表1 left|right join 表2 on 表1.列名1= 表2.列名2
left左连接可以查询出表名1的所指的表中的所有记录,表2中的内容只能查出匹配的记录
right右连接可以查询出表名2的所指的表中的所有记录,表1中的内容只能查看匹配的记录
sto.* a.address,a.email from store sto left join address a on sto.address_id = a.address_id
4.自连接查询
把一个表与它自身进行连接,它通常用来取出表中彼此包含内连接的内容,用别名的方式进行自身连接查询
select a.type_id,a.type_name,b.type_name from product a join on product b on a.type_parent_id = b.type_id where a.type_id<>0;