我有2个表,一个显示客户地址,另一个表显示所有订单数据。我想使用JOIN查询这两个表,这样我就可以得到一个结果集,告诉我去年没有订购的客户的所有电子邮件地址。
到目前为止,我有这个,但如果你可以提供帮助,我的内心联系不起作用:
SELECT SHH.CUST_NO,ADR.EMAIL
FROM SALES_HISTORY_HEADER SHH,ADDRESS ADR
INNER JOIN ADR ON
SHH.CUST_NO = ADR.CUST_NO
GROUP BY SHH.CUST_NO
HAVING Max(SHH.INVOICE_DATE) < '20100728'
答案 0 :(得分:3)
您正在混合加入样式。如果你打算使用显式连接(你应该),那么你在JOIN上指定第二个表而不是列出FROM子句中的所有表。
SELECT SHH.CUST_NO,ADR.EMAIL
FROM SALES_HISTORY_HEADER SHH
INNER JOIN ADDRESS ADR
ON SHH.CUST_NO = ADR.CUST_NO
GROUP BY SHH.CUST_NO, ADR.EMAIL
HAVING Max(SHH.INVOICE_DATE) < '20100728'