SQL 中的交叉连接目的

问题描述 投票:0回答:2

我很难理解交叉连接何时在 SQL 中有用。在了解它时,我看到了展示它的作用的例子,但这些例子并不具体。

举个例子会有帮助。

cross-join
2个回答
1
投票

SQL 中的交叉连接也称为笛卡尔连接,是指将一个表的每条记录与另一个表的每条记录组合在一起。所以你得到了两个表的所有可能的行组合。

考虑一个场景,您有 2 张桌子,分别为

meals
drinks
,现在您想探索您有哪些选择来用餐和喝酒。在这种情况下,交叉连接很有用。交叉连接通常用于探索目的。

此外,交叉连接是 SQL 中连接的最基本形式,当您应用某些条件时,您可以派生出所有其他类型的连接。无论是自然加入,自我加入还是任何东西。

还要记住,交叉连接在操作上不是很有效,采用

O(m*n)
的复杂性,即二次复杂性


0
投票

SQL 中的交叉连接就像一种混合和匹配两个表中所有行的方法,有点像创建所有可能的组合。您看不到它们像内连接或外连接那样被广泛使用,但在某些情况下它们可以派上用场。

假设您有两张桌子 - 一张用于 T 恤、帽子和鞋子等产品,另一张用于红色、绿色和蓝色等颜色。如果您想查看可以销售的所有不同产品颜色组合,您可以使用交叉连接。

您的 SQL 查询看起来像这样:

SELECT p.product_name, c.color_name
FROM Products p
CROSS JOIN Colors c;

结果?一张表格,向您展示所有很酷的组合,如红色 T 恤、绿色帽子、蓝色鞋子等。这可以帮助您制作目录、检查库存选项,甚至弄清楚销售方案。

但是请注意:交叉连接可以创建大量的行,尤其是当您使用大表时。因此,请小心并确保在潜入之前确实需要使用一个。

© www.soinside.com 2019 - 2024. All rights reserved.