【发布时间】:2020-12-27 23:57:06
【问题描述】:
我正在尝试创建一个查询来检索购买了一个 SKU('Red399')但没有购买第二个 SKU('Red323')的所有客户。似乎最好的方法是使用带有子查询的NOT EXISTS 来过滤掉购买了“Red323”的人。
我的查询没有返回任何错误,但也没有返回任何结果,我认为这可能是因为我在初始 WHERE 子句中有太多条件但我不确定:
SELECT DISTINCT o."FirstName", o."LastName", o."Email", ol."SKU"
FROM flight_export_order o
JOIN flight_export_orderline ol
ON o."OrderDisplayID" = ol."OrderDisplayID"
WHERE ol."SKU" = 'Red399'
AND o."OrderDate" BETWEEN '07/22/2020' AND '08/03/2020'
AND NOT EXISTS
(SELECT DISTINCT o."Email"
FROM flight_export_order o
JOIN flight_export_orderline ol
ON o."OrderDisplayID" = ol."OrderDisplayID"
WHERE ol."SKU" = 'Red323'
AND o."OrderDate" BETWEEN '07/22/2020' AND '08/03/2020')
【问题讨论】:
标签: sql postgresql subquery not-exists