Неразрешимый SQL-запрос - PullRequest
0 голосов
/ 08 ноября 2018

Мне нужна помощь с MySQL-Query.

Table Company:
(PK) ID_Company
CompanyName
...

Table Address:
(PK) ID_Address
(FK) ID_Company
Street
...

Table ContactPerson:
(PK) ID_ContactPerson
(PK) ID_Company
PersonName
...

Теперь я хочу создать оператор SELECT, чтобы получить список всех клиентов. Это должно выглядеть так:

ID_Company    CompanyName    Street    PersonName
    1           Google        Test        Joe

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

Одна вещь, которую я попробовал, это выбрать МИНУС ID_Address, но это не сработает, если у компании нет адреса и контактного лица.

Надеюсь, вы понимаете, что я пытаюсь сделать.

Спасибо всем за помощь! :)

1 Ответ

0 голосов
/ 08 ноября 2018

Вы можете использовать left join и агрегацию:

select c.ID_Company, c.company_name, min(street), min(person_name)
from company c left join
     address a
     on c.ID_Company = a.ID_Company left join
     ContactPerson cp
     on cp.ID_Company = a.ID_Company
group by c.ID_Company, c.company_name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...