我公司的数据库存放在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
但它无法正常工作。它仍在检索一些标有主要地址的公司。
答案 0 :(得分:0)
你可以尝试下面的代码
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
希望这会对你有所帮助
答案 1 :(得分:0)
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