无法解析的sql查询

cl25kdpy  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(265)

我需要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\u地址的最小值,但是如果一个公司没有地址和联系人,这就行不通了。
我希望你明白我想做什么。
谢谢大家的帮助!:)

biswetbf

biswetbf1#

你可以用 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;

相关问题