0

我有两张表,一张显示客户地址,另一张显示所有订单数据。我想使用 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'
4

1 回答 1

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'
于 2011-07-28T19:56:23.567 回答