左连接,右连接,内连接,全连接
先上结论:
左连接(left join):以左表为准,每关联到一条便多一条记录
右连接(right join):以右表为准,每关联到一条便多一条记录
内连接(inner join):只显示能关联到的记录
全连接(full join):关联不到的也显示记录
例如:
左表6条(1条关联不到右表)
右表17条(5条关联不到左表)
左连接条数:max(6-1,17-5)+1 = 13
右连接条数:max(6-1,17-5)+5 = 17
内连接条数:max(6-1,17-5) = 12
全连接条数:max(6-1,17-5)+1+5 = 18
注意: select * from t1,t2写法 (交叉连接查询)
以t1表3条记录,t2表4条记录,t3表2条记录为例,
select * from t1,t2
-- 返回条数3*4=12条,t1表的每一条记录对应t2表的4条记录
select * from t1,t2 where t1.字段=t2.字段
-- 相当于 select * from t1 inner join t2 on t1.字段=t2.字段
-- inner join称为显式内连接,交叉连接的写法称为隐式内连接
select * from t1,t2,t3
-- 返回条数3*4*2=24条
select * from t1,t2,t3 where t1.字段=t2.字段 and t1.字段=t3.字段
-- 相当于 select * from t1 inner join t2 on t1.字段=t2.字段 inner join t3 on t1.字段=t3.字段