什么是 CROSS JOIN(SELECT 0 作为 UNION ALL SELECT 1 UNION ALL SELECT 2 UNION...)
What is CROSS JOIN (SELECT 0 as a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION...)
我在回顾旧代码进行清理时遇到了一些奇怪的遗留代码,我试图确定它的作用...
CROSS JOIN (SELECT 0 as a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) as b
这是一种我以前从未见过的技术,包括在交叉连接中对数字进行多个联合选择,老实说,我真的很困惑它在做什么以及为什么有人会这样做。
Cross join
创建笛卡尔积。
假设 from
子句如下所示:
FROM t CROSS JOIN
( . . . )
这会为 t
中的每一行创建四行。这些行中 b.a
的值从 0 到 3 不等。
我在回顾旧代码进行清理时遇到了一些奇怪的遗留代码,我试图确定它的作用...
CROSS JOIN (SELECT 0 as a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) as b
这是一种我以前从未见过的技术,包括在交叉连接中对数字进行多个联合选择,老实说,我真的很困惑它在做什么以及为什么有人会这样做。
Cross join
创建笛卡尔积。
假设 from
子句如下所示:
FROM t CROSS JOIN
( . . . )
这会为 t
中的每一行创建四行。这些行中 b.a
的值从 0 到 3 不等。