如何在Access SQL中正确格式化嵌套的内部联接?

时间:2013-10-21 14:40:27

标签: sql count sql-order-by inner-join

我有以下表格:

   VENDOR:          PRODUCT:           ITEM:             STORE:
-  VENDOR_ID     -  PRODUCT_ID      -  ITEM_ID        -  STORE_ID
-  VENDOR_NAME   -  PRODUCT_DESC    -  STORE_ID       -  STORE_NAME
                 -  VENDOR_ID       -  PRODUCT_ID     -  STORE_LOCATION
                                    -  ITEM_PRICE

我想执行以下连接操作,但我不确定如何使用Access SQL格式化它

SELECT DISTINCT VENDOR.VENDOR_NAME, COUNT(ITEM.PRODUCT_CODE)
FROM VENDOR INNER JOIN PRODUCT ON VENDOR.VENDOR_ID = PRODUCT.VENDOR_ID
INNER JOIN ITEM ON PRODUCT.PRODUCT_ID = ITEM.PRODUCT_ID
GROUP BY VENDOR.VENDOR_NAME
ORDER BY COUNT(ITEM.PRODUCT_ID) DESC;

你能告诉我像这样嵌套INNER JOIN的正确方法吗?我正在使用Access!

2 个答案:

答案 0 :(得分:0)

FROM (VENDOR
INNER JOIN PRODUCT ON VENDOR.VENDOR_ID = PRODUCT.VENDOR_ID) 
INNER JOIN ITEM ON PRODUCT.PRODUCT_ID = ITEM.PRODUCT_ID

你唯一缺少的是括号

答案 1 :(得分:0)

数据库引擎可以使用多种方法来连接两个表。所使用的方法是通过数据库知道表中的大小和数据来选择的,并且可以对整体性能产生巨大影响。

考虑内部联合:不管顺序如何,结果总是不一样吗?

查询优化器可能通过重新排列连接来改进查询,因此您永远不应在SQL中指定任何嵌套。只需将它留给专业人士(在这种情况下:算法)。