我这里有两个表,第一个是客户表,第二个是策略表。策略可以有几种状态-活动、非活动、取消等。。
现在,我需要选择客户和他们的积极政策和取消的政策,只有当积极的不存在!
可能是这样的
SELECT c.customer_id, p.policy_id
FROM table_customer as c
INNER JOIN table_policy as p ON c.customer_id = p.customer_id
WHERE p.status = 'active' OR p.status = 'cancelled'
//(but select cancelled only if there are no active)
这是否可以在一个查询中完成?
提前谢谢。
1条答案
按热度按时间x4shl7ld1#
若要检查某个内容是否不存在,可以使用
not exists
,检查(依赖)子查询是否为空:仅当[此客户的]活动[策略]不存在时,才可以方便地直接将其读取为选择客户及其活动策略和取消的策略。
也许只是一张便条
1
在select 1
:因为你选择什么并不重要,只是有东西在那里,1
只是一个方便的选择。