标签: Mysql
left outer join 和left join表达的是同一个意思,left join可看作是left outer join的简写;
同理right outer join 、full outer join也是一样的。
(1)left join(左连接)
在两张表进行连接查询时,会返回左表所有的行数据,右表中返回只返回和左表匹配的数据,没有的显示为Null。
(2)right join(右连接)
在两张表进行连接查询时,会返回右表所有的行数据,左表中返回只返回和右表匹配的数据,没有的显示为Null。
(3)full join(全连接)
在两张表进行连接查询时,返回左表和右表中所有行数据(包括左表和右表匹配的数据、未匹配的数据,相互未匹配的数据显示为Null)。
(4)inner join(内连接)
在两张表进行连接查询时,只显示左表和右表相匹配的数据。
(5)cross join(笛卡尔积)select * from a cross join b
显示a*b的数据集
单纯的select * from a,b
也是笛卡尔乘积。比如a表有10条数据,b表有20条数据,那么最后的结果有10*20=200条数据。
但是如果对两个表进行关联:select * from a,b where a.id = b.id
意思就变了,此时就等价于:
select * from a inner join b on a.id = b.id
即就是内连接。
参考:https://www.cnblogs.com/ThinkVenus/p/10095543.html