【问题标题】:How to properly format nested inner joins in Access SQL?如何正确格式化 Access SQL 中的嵌套内连接?
【发布时间】:2013-10-30 02:55:04
【问题描述】:

我有以下表格:

   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!

【问题讨论】:

  • 我已经在您发布的上一个问题中回答了您的问题。 :)

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


【解决方案1】:

数据库引擎可以使用多种方法来连接两个表。使用的方法是根据数据库对表中的大小和数据的了解程度来选择的,并且会对整体性能产生巨大影响。

想想内连接:结果不总是一样的,不管顺序如何?

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

【讨论】:

    【解决方案2】:
    FROM (VENDOR
    INNER JOIN PRODUCT ON VENDOR.VENDOR_ID = PRODUCT.VENDOR_ID) 
    INNER JOIN ITEM ON PRODUCT.PRODUCT_ID = ITEM.PRODUCT_ID
    

    你唯一缺少的是括号

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-25
      • 2020-02-22
      • 1970-01-01
      • 2018-04-11
      • 2013-08-15
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      相关资源
      最近更新 更多