0

我有公司存储在我的数据库中的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

但它不能正常工作。它仍在检索一些地址标记为主要地址的公司。

4

2 回答 2

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

希望对你有帮助

于 2013-10-02T10:36:01.430 回答
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
于 2013-10-02T10:39:22.300 回答