Получить информацию от child и childs child, если столбец пуст - PullRequest
1 голос
/ 20 февраля 2020

Я застрял на некоторое время. У меня есть 3 таблицы со связями, и я должен получить информацию от дочернего элемента и «внука», если столбец в родительском элементе равен нулю. Трудно объяснить, но позвольте мне визуализировать.

В таблице 1 я просто использую DATE для визуализации даты и NULL, если даты нет.

Таблица1

ID Name   Leased Delivered
1  John   DATE   DATE
2  Peter  DATE   DATE
3  Martha DATE   NULL

Table2

Firstname Lastname PostalCode
John      Doe      50001
Peter     Johnson  20200
Martha    Peterson 39201

Table3

PostalCode Place
50001      New York
20200      California
39201      Texas

Что я хочу сделать, это выбрать людей по имени, фамилии, почтовому индексу и месту, если поставленная дата равна нулю, но я делаю не знаю как. То, что я смог сделать, это получить имя человека, для которого в качестве даты доставки указано NULL, и получить точную фамилию лица, почтовый индекс и место. Я знаю, как получить информацию о людях из таблицы 2, если поставленная дата в таблице 1 является нулевой, используя внутреннее соединение, но я не знаю, как получить информацию из таблицы 3. Также.

Как мне сопоставить имя из table1 с именем на table2 и получите эту строку, а затем сопоставьте почтовый индекс в table2 с почтовым кодом с table3 и получите информацию о этих строках.

В приведенном выше примере оператор select должен вывести это:

Firstname Lastname PostalCode Place
Martha    Peterson 39201      Texas

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Вы, кажется, хотите join s:

select
    t2.firstname,
    t2.lastname,
    t2.postalcode,
    t3.place
from table1 t1
inner join table2 t2 on t2.firstname = t1.name
inner join table3 t3 on t3.postalcode = t2.postalcode
where t1.delivered is null
0 голосов
/ 20 февраля 2020
select t2.firstname, t2.lastname,t2.postalcode, t3.place from 
table1 t1
inner join table2 t2
on t1.name = t2.firstname
inner join table3 t3
on t2.postalcode = t3.postalcode
where t1.delivered is null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...