SQL 连接(笛卡尔连接和自连接)
SQL|连接(内连接,左连接,右连接和全连接)
在本文中,我们将讨论剩下的两个join:
- CARTESIAN JOIN
- SELF JOIN
考虑以下两个表格:
StudentCourse
笛卡尔连接(CARTESIAN JOIN)
笛卡尔连接也被称为交叉连接。在笛卡尔连接中,一个表的每一行与另一个表的每一行都有一个连接。这通常发生在没有指定匹配列或WHERE条件的情况下。
- 在没有WHERE条件的情况下,笛卡尔连接的行为将类似于笛卡尔积。也就是说,结果集中的行数是两个表的行数的乘积。
-
在存在WHERE条件的情况下,此连接的功能类似于内连接。
-
一般来说,交叉连接类似于内部连接,其中连接条件将始终计算为True
语法:
table1 : 第一个表.
table2 : 第二个表
示例查询(笛卡尔连接):
- 在下面的查询中,我们将从Student表中选择NAME和Age,从StudentCourse表中选择COURSE_ID。在输出中,您可以看到Student表的每一行与StudentCourse表的每一行连接在一起。结果集中的总行数= 4 * 4 = 16。
输出 :
自连接(SELF JOIN)
顾名思义,在SELF JOIN中,表是与自己连接的。也就是说,根据某些条件,表的每一行都与自身和所有其他行连接。换句话说,我们可以说它是同一个表的两个副本之间的连接。
语法:
table_name : 表名
some_condition : 选择行的条件.
示例查询(SELF JOIN):
输出: