我正在使用包含字段'contacts'
,'contact_id'
和'account_id'
的SQL表'approved'
。
帐户是潜在客户的公司,每个帐户有多个联系人。如果这些联系人中的任何一个被批准(符合特定标准),我们可以出售给该帐户。已经批准的' field是boolean。
我正在尝试编写一个查询,该查询将返回未经批准的联系帐户的account_ids。我尝试过使用ANY
,BOOL_AND
以及几种类型的分组和计数但没有成功。任何建议都非常感谢。
我的表格类似于:
ACCOUNT_ID CONTACT_ID APPROVED
Apple 123 TRUE
Apple 321 FALSE
Pear 456 FALSE
Pear 654 FALSE
Orange 789 TRUE
Orange 987 TRUE
我希望我的查询返回
ACCOUNT_ID
Pear
因为这是所有记录都是假的唯一帐户。
答案 0 :(得分:1)
您可以尝试使用 NOT EXISTS
SELECT DISTINCT account_id
FROM contacts a
WHERE
NOT EXISTS (
SELECT 1
FROM contacts b
WHERE a.account_id = b.account_id AND b.approved = TRUE)
我创建了一个演示here