合并多行子查询和相关 SQL 查询

Merge multiple row subquery into corelated SQL query

我有一个相关的 SQL 子查询,其中 returns 多行。例如,

SELECT NAME AS NAME1,
(SELECT NAME FROM ...) AS NAME2 /*this inner select returns more than one rows*/ 
FROM PERSONAL_INFORMATION

是否可以将 NAME2 返回的行与主查询的其余部分合并,这里是 NAME1。 我在想的是下面显示的一种叉积,我可以使用 GROUP BYDISTINCT?

对所有给定实例进行分组
NAME1_1  NAME2_1
NAME1_1  NAME2_2
NAME1_2  NAME2_1
NAME1_2  NAME2_2

那就用CROSS JOIN吧。

SELECT I1.NAME AS NAME1, I2.NAME AS NAME2 
FROM PERSONAL_INFORMATION I1
CROSS JOIN PERSONAL_INFORMATION2 I2;

如果您需要更多详细信息,可以使用 GROUP BY :

SELECT I1.NAME AS NAME1, I2.NAME AS NAME2, 
       COUNT(1) cnt, SUM(COL2) sum_col1 ...
FROM PERSONAL_INFORMATION I1
CROSS JOIN PERSONAL_INFORMATION2 I2
GROUP BY I1.NAME, I2.NAME;