gpt4 book ai didi

sql - Cross Join 有什么用?

转载 作者:太空狗 更新时间:2023-10-30 01:37:10 26 4
gpt4 key购买 nike

交叉连接对两个集合的元组执行笛卡尔积。

SELECT *
FROM Table1
CROSS JOIN Table2

哪些情况下这种 SQL 操作特别有用?

最佳答案

如果您有一个要完全填充的“网格”,例如特定服装的尺码和颜色信息:

select 
size,
color
from
sizes CROSS JOIN colors

也许你想要一个包含一天中每一分钟的行的表,并且你想用它来验证每分钟都执行了一个过程,所以你可能会交叉三个表:

select
hour,
minute
from
hours CROSS JOIN minutes

或者您有一组标准报告规范,您希望将其应用到一年中的每个月:

select
specId,
month
from
reports CROSS JOIN months

将这些保留为 View 的问题在于,在大多数情况下,您不需要完整的产品,尤其是在服装方面。您可以将 MINUS 逻辑添加到查询中以删除您不携带的某些组合,但您可能会发现以其他方式填充表而不使用笛卡尔积更容易。

此外,您最终可能会尝试对可能比您想象的多几行的表进行交叉连接,或者您的 WHERE 子句可能部分或完全缺失。在这种情况下,您的 DBA 将立即通知您遗漏。通常他或她不会开心。

关于sql - Cross Join 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/219716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com