SQL中inner join、outer join和cross join的区别
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:25
对于SQL中inner join、outer join和cross join的区别简介:
现有两张表,Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的:
1.INNER JOIN 产生的结果是AB的交集
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name

2.LEFT [OUTER] JOIN 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name

3.RIGHT [OUTER] JOIN 产生表B的完全集,而A表中匹配的则有值,没有匹配的则以null值取代。
SELECT * FROM TableA RIGHT OUTER JOIN TableB ON TableA.name = TableB.name
图标如left join类似。
4.FULL [OUTER] JOIN 产生A和B的并集。对于没有匹配的记录,则会以null做为值。
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
你可以通过is NULL将没有匹配的值找出来:
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
WHERE TableA.id IS null OR TableB.id IS null

5. CROSS JOIN 把表A和表B的数据进行一个N*M的组合,即笛卡尔积。如本例会产生4*4=16条记录,在开发过程中我们肯定是要过滤数据,所以这种很少用。
SELECT * FROM TableA CROSS JOIN TableB
- 上一篇: SQL中关于Join
- 下一篇: sql中decode()的使用
相关文章
-
SQL中关于Join
SQL中关于Join
- 互联网
- 2026年04月04日
-
sql中如何取四个字段最小的
sql中如何取四个字段最小的
- 互联网
- 2026年04月04日
-
sql中使用timestamp增量抽取数据
sql中使用timestamp增量抽取数据
- 互联网
- 2026年04月04日
-
sql中decode()的使用
sql中decode()的使用
- 互联网
- 2026年04月04日
-
sql֮left join
sql֮left join
- 互联网
- 2026年04月04日
-
SQL语句大全(mysql,sqlserver,oracle)
SQL语句大全(mysql,sqlserver,oracle)
- 互联网
- 2026年04月04日






