我需要有关MySQL查询的帮助。
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的MIN,但是如果公司没有地址和联系人,那将不起作用。
希望您能理解我要做什么。
谢谢大家的帮助! :)
答案 0 :(得分:0)
您可以使用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;