SQL联合查询内连接,外连接和交叉连接的区别详解

  

对于开发使用到数据库的应用,免不了就要使用联合查询,SQL中常用的联合查询有内连接,外连接和交叉连接;这三者的区别很多人都应该不是很清楚,包括我自己、下面我们一起来看看,如果你使用加入连表,缺陷的情况下是内连接,另外,开发中使用的左连接和右连接属于外连接,而外部联接还包括全部加入。下面我通过图案让大家认识它们的区别。

  

现有两张表,表一是左边的表.Table B是右边的表,其各有四条记录,其中有两条记录名字是相同的:

  

 SQL联合查询内连接,外连接和交叉连接的区别详解

  

1。内连接产生的结果是AB的交集

        SELECT * FROM为多内连接表b alt=" SQL联合查询内连接,外连接和交叉连接的区别详解">

  

2。左(外)连接产生表一的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。

        SELECT *从为多左外连接表b alt=" SQL联合查询内连接,外连接和交叉连接的区别详解">

  

3。正确的(外)加入产生表B的完全集,而一个表中匹配的则有值,没有匹配的则以null值取代。

        SELECT *从为多右外连接表b>   SELECT * FROM为多全外连接表b>   SELECT * FROM为多全外连接表b alt=" SQL联合查询内连接,外连接和交叉连接的区别详解">

  

5。交叉连接把表一和表B的数据进行一个N * M的组合,即笛卡尔积。如本例会产生4 * 4=16条记录,在开发过程中我们肯定是要过滤数据,所以这种很少用。

        SELECT * FROM为多交叉连接表b      

通过上面的比对,相信大家对内连接,外连接和交叉连接的区别已一目了然了。

  

<>强补充

  

为什么最好用加入吗?因为用”、“做表连接的话,A, B表直接产生笛卡尔积,然后在用在筛选结果。但是加入连接,A, B表连接的时候就会根据上后面的条件筛选,然后在根据在哪条件筛选结果

  

按照sql标准交叉连接是笛卡尔积。但对于mysql来说,交叉连接相当于内连接。

  

<强>总结

  

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

SQL联合查询内连接,外连接和交叉连接的区别详解