我的SQL技能因不使用而变得生锈,并希望在以下方面寻求帮助。
我有一个产品表,一个客户表和一个订单参考表。客户可以在同一“订单参考”中订购1个或多个产品。
我编写的SQL查询是:
SELECT O.ORDER_REF,P.Product,C.Name
FROM PRODUCTS AS P
INNER JOIN ORDER_REFS AS O ON P.ORDER_REF = O.ORDER_REF
INNER JOIN CUST AS C ON P.ORDER_REF = C.ORDER_REF
WHERE P.PROD_CODE =`A`
AND P.ORDER_DATE = '2019-11-01'
ORDER BY O.APP_REF ASC;
我只希望仅购买产品“ A”的客户。 上面我的查询结果提供了所有订购“ A”的订单,还包括了A&B和A&C等。
表O就像这样,其中每个ORDER_REF有多个行:
ORDER_REF PRODUCT NAME
1 | A | Mr X
1 | B | Mr X
2 | A | Mr Y
3 | A | Mr T
4 | A | Mr S
5 | A | Mr W
5 | C | Mr W
我想要的结果将显示以下内容,因为他们只购买了'A'
ORDER_REF PRODUCT NAME
2 | A | Mr Y
3 | A | Mr T
4 | A | Mr S
我尝试了SELECT DISTINCT,但无济于事,因此将不胜感激任何帮助/指针。