Объединить подзапрос с несколькими строками в запрос SQL - PullRequest
0 голосов
/ 28 июня 2018

У меня есть коррелированный подзапрос SQL, который возвращает несколько строк. Например,

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

Возможно ли объединить строки, возвращенные NAME2, с остальной частью основного запроса, здесь NAME1, то есть. То, что я думаю, является своего рода перекрестным продуктом, показанным ниже, где я могу сгруппировать все данные экземпляры, используя GROUP BY или DISTINCT?

NAME1_1  NAME2_1
NAME1_1  NAME2_2
NAME1_2  NAME2_1
NAME1_2  NAME2_2

1 Ответ

0 голосов
/ 28 июня 2018

Просто используйте 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;
...