我的数据库中的公司存储在company
表下,他们的地址存储在companyaddress
下。一家公司可以有多个地址。
在companyaddress
表中,有常用字段,如street1
、postcode
等,还有一个名为main
的字段,这是一个布尔字段,代表公司的主要地址(我发送信件的地方)。
我想编制一份地址在companyaddress
中拥有的公司列表,但没有任何标记为main
。到目前为止,我有这个:
select distinct c.name from company c
left join companyaddress ca on ca.company_id = c.id
where ca.main IS FALSE
order by c.name asc
但它无法正常工作。它仍在检索一些地址标记为main的公司。
select distinct c.name from company c
inner join
(
Select Company_Id,
Sum(Case when Main=1 than 1 Else 0 End) as Totals
form companyaddress group by Company-Id Having Sum(Case when Main=1 than 1 Else 0 End) <1
) ca on ca.company_id = c.id
order by c.name asc
你可以试试下面的代码
select distinct c.name from company c
left join companyaddress ca on ca.company_id = c.id
where ca.main = 0
order by c.name asc
希望这对你有帮助