千家信息网

SQL联合查询inner join、outer join和cross join的区别详解

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,对于开发使用到数据库的应用,免不了就要使用联合查询,SQL中常用的联合查询有inner join、outer join和cross join;这三者的区别很多人都应该不是很清楚,包括我自己,下面我们一
千家信息网最后更新 2026年11月03日SQL联合查询inner join、outer join和cross join的区别详解

对于开发使用到数据库的应用,免不了就要使用联合查询,SQL中常用的联合查询有inner join、outer join和cross join;这三者的区别很多人都应该不是很清楚,包括我自己,下面我们一起来看看,如果你使用join连表,缺陷的情况下是inner join,另外,开发中使用的left join和right join属于outer join,而outer join还包括full 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.nameWHERE 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 

通过上面的比对,相信大家对inner join、outer join和cross join的区别已一目了然了。

补充

为什么最好用join?因为用","做表连接的话,A,B表直接产生笛卡尔积,然后在用where筛选结果。但是join连接,A,B表连接的时候就会根据on后面的条件筛选,然后在根据where条件筛选结果

按照sql标准CROSS JOIN是笛卡尔积。但对于mysql来说,CROSS JOIN 相当于 INNER JOIN。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

内容 数据 结果 笛卡尔 开发 查询 联合 全集 条件 学习 清楚 相同 一目了然 交集 价值 例会 可以通过 右边 图案 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 盈实互联网科技 深圳前海聚择互联网科技有限公司 中国科技互联网公司收入 中国互联网有什么科技含量 华服互联网科技官网 崇明区互联网教育科技诚信经营 互联网媒体平台算高科技产业 中国互联网十大科技股排名 河南住房之家互联网科技 企晟互联网信息科技有限公司 威龙国际互联网科技公司 科技赋能视角下互联网保险发展 高科技互联网套路 福州德业互联网科技 科技互联网行业投资研究 上海万顺科技互联网有限公司招聘 银川新华互联网科技学校是国营吗 平安好医生打造互联网科技医疗 高科技和互联网的现代国家 前海云享互联网科技 科技互联网 互联网的科技 互联网和科技创新 卓越科技(互联网 ) 未来五年的互联网科技 互联网金融科技名词解释 互联网科技新闻 西安左小互联网科技有限公司 科技信息时代互联网发展 黑龙江互联网科技公司
0