Ссылочная колонка из WITH-Subselect

Проблема заключается в следующем: я использую подзапрос, и мне нужно присоединиться

WITH subselect_from_A AS (
    SELECT A.A_ID FROM A
)
SELECT B.D_ID FROM B, subselect_from_A WHERE B.B_ID = 
A.A_ID
/* or instead: subselect_from_A.A_ID */

;

Как мне ссылаться на столбец формы подвыбор?

2 ответа

Решение

Прежде всего, вам следует прекратить использовать устаревшие неявные объединения и использовать вместо них явные объединения. Тогда вы можете использовать псевдонимы таблиц для этого:

WITH subselect_from_A AS (
    SELECT A.A_ID FROM A --doesn't really seem like a sub-select
)
SELECT B.D_ID, A.A_ID
FROM B
INNER JOIN subselect_from_A AS A
    ON B.B_ID = A.A_ID;

Точно так же, как с обычным столом.

WITH subselect_from_A AS (
    SELECT A.A_ID FROM A
)
SELECT B.D_ID, subselect_from_A.A_ID FROM B, subselect_from_A
WHERE B.B_ID = subselect_from_A.A_ID;
Другие вопросы по тегам