使用SQL加入问题

时间:2014-12-13 17:18:48

标签: sql ms-access join

我收到错误:“From Clause中的语法错误”

我该如何解决这个问题?这是我的SQL:

SELECT INVOICE.INV_NUMBER,
       PRODUCT_revised.P_DESCRIPT, 
       CUSTOMER.CUS_CODE, 
       CUSTOMER.CUS_LNAME, 
       CUSTOMER.CUS_FNAME, 
       LINE.LINE_UNITS AS [Purchase_Quantity], 
       LINE.LINE_PRICE AS [Unit_Price], 
       (Purchase_Quantity * Unit_Price) AS [Line Total]
FROM INVOICE, PRODUCT_revised, CUSTOMER, LINE
FULL JOIN INVOICE
     ON INVOICE.INV_NUMBER = LINE.INV_NUMBER;

1 个答案:

答案 0 :(得分:3)

您的FROM子句甚至不正确。您正试图混合“旧”和“新”JOIN。选择一种格式,并坚持下去。可能最好使用特别需要INNER JOIN INNER JOINS的新格式。在我下面的示例中,我假设 INNER JOIN是您想要的类型,但根据您真正尝试提取的内容可能并非如此。

此外,您缺少大多数JOIN的JOIN条件,因此此查询会吐出大量不需要的记录。

为了正确地编写包含相同表的JOIN两次(这很好,并且常见的事情),您需要对这些表进行别名,以便可以在尚未提供的JOIN条件中区分它们。

最后,很少需要FULL OUTER JOIN。即使在这种情况下需要 ,MS Access也不支持它。

所以,你最终的FROM子句看起来像这样:

FROM ((((Invoice AS INV1 INNER JOIN Product_Revisied ON <JOIN Conditions Here>)
   INNER JOIN Customer ON <JOIN Conditions Here>)
   INNER JOIN Line ON <JOIN Conditions Here>)
   INNER-OR-OUTER JOIN Invoice AS INV2 ON <JOIN Conditions Here>)