подзапрос с объединением в той же таблице в MySQL - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь получить некоторые данные из моей таблицы, используя соединение и подзапрос.Мой сценарий: у меня есть таблица таблица ABC со структурой, как показано

ID   NAME  PARENT   RELATION

Я хочу идентификатор, имя, имяродителя и имя супруга, если кто-либо из членов, который не является супругом.Запрос, который я пробовал:

SELECT E1.name AS memname,
       E2.name AS parentname 
FROM ABC AS E1 
LEFT OUTER JOIN ABC AS E2 ON E2.id = E1.parent_id  
where E1.relation != "Spouse"

Этот запрос возвращает правильные строки для идентификатора, имени и родительского имени члена.Теперь мне нужно переписать запрос, чтобы я также получил имя супруга, если у какого-либо участника есть супруга.Ожидаемый результат:

enter image description here

Я пытался использовать подзапрос, чтобы выбрать имя супруга, но это была ошибка.Кто-нибудь может мне с этим помочь?Заранее спасибо

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете сделать еще одно самостоятельное соединение, чтобы получить имя супруга.

SELECT E1.name AS memname,
       E2.name AS parentname,
       E3.name AS spouse 
FROM ABC AS E1 
LEFT OUTER JOIN ABC AS E2 ON E2.id = E1.parent_id  
LEFT OUTER JOIN ABC AS E3 ON E3.parent_id = E1.id AND 
                             E3.relation = 'Spouse'   
where E1.relation <> 'Spouse'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...