错误消息
Order_ID可以引用SQL语句的FROM子句中的多个表
SELECT Customer_ID, o.Order_ID, o.Order_Date, p.Product_Description, p.Product_Finish
FROM Order_T AS o, Order_Line_T AS ol, Product_T AS p
WHERE o.Order_ID=ol.Order_ID
AND ol.Product_ID = p.Product_ID
AND ol.Ordered_Quantity > 3
ORDER BY Order_ID;
我一直收到一条错误,说明Order_ID可以引用SQL语句的FROM子句中的多个表,有人可以帮我这个我不知道什么是错的。
答案 0 :(得分:1)
bearname
查看上面的查询,您可以看到2个表中至少有两列FROM Order_T AS o, Order_Line_T AS ol, Product_T AS p
WHERE o.Order_ID=ol.Order_ID
....
:
此子句Order_ID
中还有Order_ID
列没有别名。数据库不知道这里应该使用哪个order_id列 - o.Order_ID或ol.Order_ID,并报告错误。
只需在order by子句中使用别名:ORDER BY Order_ID;
,这应该可以解决问题。
答案 1 :(得分:0)
您错过了JOIN
。
虽然可以接受WHERE
条款,但在访问中首选使用ON
关键字。
此外,Access需要在同一语句中围绕多个联接使用括号。
尝试:
FROM (Order_T AS o INNER JOIN Order_Line_T AS ol ON o.Order_ID=ol.Order_ID)
INNER JOIN Product_T AS p ON ol.Product_ID = p.Product_ID
WHERE ol.Ordered_Quantity > 3
ORDER BY o.Order_ID;