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