【Oracle 数据库】奶妈式教程day06 交叉连接

编程知识 行业动态 更新时间:2024-06-13 00:20:52

交叉连接(笛卡尔积连接)

将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积。
语法:
select 列名,列名,...from a表 cross join b表;

通俗的讲:
交叉连接就是要要保证A表中的每一条数据要和B表中的每一条数据有关联,同理B表中的每一条数据要和A表中的每一条数据也要有关联。

举例说明:
有个相亲节目大家都不陌生吧,就是俩光头领着24个骗子忽悠五个傻老爷们的事情(狗头保命)。

我们村呢,有个大傻子和二傻子。有一天他们两个一起去参加这个相亲节目去了,首先登场的就是我们村唯一一个会ctrl的大傻子。

此时台上有五名女嘉宾,大傻子登台后,被主持人要求自我介绍,并让其环顾一周挑选一位心仪的女嘉宾。在这个过程中呢,他们之间彼此都互相认识了。

此时共产生了五条数据:

大傻子 <--> 女1
大傻子 <--> 女2
大傻子 <--> 女3
大傻子 <--> 女4
大傻子 <--> 女5

但是很遗憾,大傻子遗憾退场。紧跟着是二傻子上场,还是同样的操纵,同样的产生了五条数据:

二傻子也产生了五条数据:

二傻子 <--> 女1
二傻子 <--> 女2
二傻子 <--> 女3
二傻子 <--> 女4
二傻子 <--> 女5

也就是说一共产生了10条数据:

大傻子 <--> 女1
大傻子 <--> 女2
大傻子 <--> 女3
大傻子 <--> 女4
大傻子 <--> 女5
二傻子 <--> 女1
二傻子 <--> 女2
二傻子 <--> 女3
二傻子 <--> 女4
二傻子 <--> 女5

如果将男嘉宾们当做表A,女嘉宾们当作表B。那么我们可以看得出来,表A中得每一条数据都表B中的每一条数据有了联系,反过来讲,表B中的每一条数据和表A中的每一条数据也都有了关系,这就是交叉连接(其返回的行数就是两个表中的乘积2*5=10)。

在Oracle中的交叉连接:

SELECT * FROM EMP CROSS JOIN DEPT;

从结果会发现,emp表有15条数据,deot表有4条数据。emp表中的每一条数据单独摘出来都和dept表中的4条数据有了联系,反过来dept表中的每一条数据单独摘出来都和emp表的15条数据有了联系。

更多推荐

【Oracle 数据库】奶妈式教程day06 交叉连接

本文发布于:2023-03-30 18:50:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/2f31aac4bafc404d07f50c9b23b74592.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:奶妈   数据库   教程   Oracle

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!