SQL交叉连接剖析
SQL中什么是交叉连接?
如果没有 WHERE 子句与 CROSS JOIN 一起使用,SQL CROSS JOIN 会生成一个结果集,该结果集是第一个表中的行数乘以第二个表中的行数。这种结果称为笛卡尔积。如果 WHERE 子句与 CROSS JOIN 一起使用,则其功能类似于 INNER JOIN。
SQL Cross Join语法图解
实现相同结果的另一种方法是在 SELECT 之后使用以逗号分隔的列名称,并在 FROM 子句之后提及涉及的表名称。
句法:
SELECT *
FROM table1
CROSS JOIN table2;
例子:
下面是两个表之间 SQL 交叉连接的示例。
示例表:食品
+---------+--------------+-----------+------------+
| ITEM_ID | ITEM_NAME | ITEM_UNIT | COMPANY_ID |
+---------+--------------+-----------+------------+
| 1 | Chex Mix | Pcs | 16 |
| 6 | Cheez-It | Pcs | 15 |
| 2 | BN Biscuit | Pcs | 15 |
| 3 | Mighty Munch | Pcs | 17 |
| 4 | Pot Rice | Pcs | 15 |
| 5 | Jaffa Cakes | Pcs | 18 |
| 7 | Salt n Shake | Pcs | |
+---------+--------------+-----------+------------+
示例表:公司
+------------+---------------+--------------+
| COMPANY_ID | COMPANY_NAME | COMPANY_CITY |
+------------+---------------+--------------+
| 18 | Order All | Boston |
| 15 | Jack Hill Ltd | London |
| 16 | Akas Foods | Delhi |
| 17 | Foodies. | London |
| 19 | sip-n-Bite. | New York |
+------------+---------------+--------------+
要从食品表和公司名称中获取商品名称和商品单位列,从公司表中获取公司城市列,在与这些提到的表进行交叉连接后,可以使用以下 SQL 语句:
SQL代码:
SELECT foods.item_name,foods.item_unit,
company.company_name,company.company_city
FROM foods
CROSS JOIN company;
或者
SQL代码:
SELECT foods.item_name,foods.item_unit,
company.company_name,company.company_city
FROM foods,company;
两个表如何交叉连接
输出:
ITEM_NAME ITEM_UNIT COMPANY_NAME COMPANY_CITY
--------------- ---------- --------------- ---------------
Chex Mix Pcs Order All Boston
Cheez-It Pcs Order All Boston
BN Biscuit Pcs Order All Boston
Mighty Munch Pcs Order All Boston
Pot Rice Pcs Order All Boston
Jaffa Cakes Pcs Order All Boston
Salt n Shake Pcs Order All Boston
Chex Mix Pcs Jack Hill Ltd London
Cheez-It Pcs Jack Hill Ltd London
BN Biscuit Pcs Jack Hill Ltd London
Mighty Munch Pcs Jack Hill Ltd London
Pot Rice Pcs Jack Hill Ltd London
Jaffa Cakes Pcs Jack Hill Ltd London
Salt n Shake Pcs Jack Hill Ltd London
Chex Mix Pcs Akas Foods Delhi
Cheez-It Pcs Akas Foods Delhi
BN Biscuit Pcs Akas Foods Delhi
Mighty Munch Pcs Akas Foods Delhi
Pot Rice Pcs Akas Foods Delhi
Jaffa Cakes Pcs Akas Foods Delhi
Salt n Shake Pcs Akas Foods Delhi
Chex Mix Pcs Foodies. London
.........
.........
上述输出的更多介绍:
版权所属:SO JSON在线解析
原文地址:https://www.sojson.com/blog/507.html
转载时必须以链接形式注明原始出处及本声明。
本文主题:
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。