Вложенный SELECT с использованием результатов первого SELECT - PullRequest
1 голос
/ 30 сентября 2019

Мне нужно перечислить всех покупателей, которые были направлены в книжный магазин другим покупателем, указав фамилию каждого покупателя и номер покупателя, который сделал это направление.

Достаточно просто, но я пытаюсь добавить в запрос, также перечисляя имя и фамилию ссылающегося клиента из той же таблицы и данных.

Указанный столбец - это № клиентачеловек, который направил их.

SELECT lastname, a.referred || ' ' || a.firstname || ' ' || a.lastname "Referred By:"
  FROM customers 
    WHERE referred =
    (SELECT a.firstname, a.lastname FROM customers WHERE customer# = a.referred);

Мой ожидаемый результат - что-то вроде

Lastname: Referred By:

Gina      1003 Leila Smith

Получение этой ошибки:

ORA-00904: "A"."LASTNAME": invalid identifier

00904. 00000 -  "%s: invalid identifier"

Правильно ли я думаю, что мне может понадобитьсясделать вложенный выбор в самом предложении SELECT? Спасибо.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

Гораздо проще использовать предложение CONNECT BY -

SELECT PRIOR lastname, 
       referred || ' ' || firstname || ' ' || lastname "Referred By:"
FROM customers
CONNECT BY PRIOR customer# = referred
0 голосов
/ 30 сентября 2019

Вы можете самостоятельно присоединиться к таблице.

При условии, что в таблице customers есть столбец с именем referred, содержащий customer# ссылающегося клиента:

SELECT 
    c.lastname, 
    c.referred || ' ' || r.firstname || ' ' || r.lastname "Referred By:"
FROM customers c
INNER JOIN customers r ON r.customer# = c.referred
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...