帮助SQL INNER JOIN语句

时间:2011-07-28 19:53:01

标签: sql pervasive

我有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'

1 个答案:

答案 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'