新知识:Cross Join

背景引入

Mysql中有许多JOIN操作,JOIN操作的基本作用就是将两张及以上的表进行连接并返回结果集,今天学习到的CROSS JOIN的作用呢,就是返回两个表的笛卡尔积结果,诶,那么先解释是什么是笛卡尔积。

笛卡尔积

使用A×B来表示集合A与集合B的笛卡尔积操作,其符号化表达:A×B={(x,y)|x∈A^y∈B},也就是将两个集合中的元素一一组合并返回组合结果。

假设两个集合A、B,A={‘张三’,‘李四’,‘王五’},B={‘语文成绩’,’数学成绩’}

使用A×B来表示集合A与集合B的笛卡尔积操作,那么两个集合进行笛卡尔积后的结果是什么样的呢?

A×B={(‘张三’,’语文成绩’),(‘张三’,’数学成绩’),(‘李四’,’语文成绩’),(‘李四’,’数学成绩’),(‘王五’,’语文成绩’),(‘王五’,’数学成绩’)}

mysql中使用cross join实现两表笛卡尔积


2024-9-2更新

今天在做题的时候,看题解的时候突然发现,原来Mysql默认select xx from table1,table2

就是返回table1和table2 的笛卡尔积结果


现在有两张表

Students table:
+------------+--------------+
| student_id | student_name |
+------------+--------------+
| 1          | Alice        |
| 2          | Bob          |
| 13         | John         |
| 6          | Alex         |
+------------+--------------+
Subjects table:
+--------------+
| subject_name |
+--------------+
| Math         |
| Physics      |
| Programming  |
+--------------+

使用以下SQL就可以将两表进行笛卡尔积

select t1.student_id,t1.student_name,t2.subject_name
from Students t1 cross join Subjects t2

select t1.student_id,t1.student_name,t2.subject_name
from Students t1,Subject t2

查看结果:

| student_id | student_name | subject_name |
| ---------- | ------------ | ------------ |
| 1          | Alice        | Programming  |
| 1          | Alice        | Physics      |
| 1          | Alice        | Math         |
| 2          | Bob          | Programming  |
| 2          | Bob          | Physics      |
| 2          | Bob          | Math         |
| 13         | John         | Programming  |
| 13         | John         | Physics      |
| 13         | John         | Math         |
| 6          | Alex         | Programming  |
| 6          | Alex         | Physics      |
| 6          | Alex         | Math         |
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇