【问题标题】:Access - SELECT JOIN many to many 2 tables with 3 dictionaries访问 - SELECT JOIN 多对多 2 个表和 3 个字典
【发布时间】:2016-04-20 11:06:48
【问题描述】:

请帮助我进行 ACCESS SQL SELECT 查询。

Database scheme

我需要将销售数据链接到我的促销表中。参见上面的方案。 我尝试了这样的想法,但它不起作用。

       SELECT P.Ext_item_id, P.Ext_shop_id, P.Ext_date_id, S.SALES

       FROM (((PromoTable AS P INNER JOIN SHOP AS SH ON P.Ext_shop_id = SH.Ext_shop_id)
                               INNER JOIN ITEM AS I ON P.Ext_item_id = I.Ext_item_id)
                               INNER JOIN DATE AS D ON P.Ext_date_id = D.Ext_date_id)

                          ?????INNER JOIN SALES AS S ON SH.shop_id=S.shop_id
                                                    AND I.item_id = S.item_id
                                                    AND D.date_id = D.date_id

问题是:如何使用它们之间的 3 个字典表链接 2 个表(M:M 关系) 非常感谢!

表格中的数据示例

Tables view

【问题讨论】:

  • 现在如何运作?
  • 它根本不起作用。因为我正在使用另一个表中的键加入 SALES 表。我需要以某种方式加入 PROMO -> ITEMS -> SALES 等
  • 好吧,您的代码中至少有一个错字 - 最后一行应该是 D.date_id = S.date_id。你确定你的数据库设计正确吗?具有不同密钥对的三个中间表似乎不是实现 M:M 关系的正确方法。你能详细说明一下你的目标吗?
  • 好的,描述我的工作。有销售数据库。我需要用 PROMO 分析做我自己的数据库。为了做到这一点,我想使用我的 PROMO 表中的所有数据(如折扣百分比、促销计划销售等)准备 QUERY,并将其与 SALES 表中的数据相匹配,但 ID 不同,但有 3 个表用于 ITEMS、DATES和 Shops - 具有不同信息的字典表,例如项目名称、项目层次结构、商店区域等,这些表还包含 2 种不同 ID 类型之间的一致性。
  • 老实说,需要每个表的数据示例..

标签: sql ms-access select relationships


【解决方案1】:

您最初的方法似乎是正确的..

  SELECT P.Ext_item_id, P.Ext_shop_id, P.Ext_date_id, S.SALES
  FROM PROMO P
  INNER JOIN SHOP SH ON P.Ext_shop_id = SH.Ext_shop_id
  INNER JOIN ITEM I ON P.Ext_item_id = I.Ext_item_id
  INNER JOIN [DATE] D ON P.Ext_date_id = D.Ext_date_id
  INNER JOIN SALES S 
    ON SH.shop_id=S.shop_id  AND I.item_id = S.item_id  AND D.date_id = S.date_id

【讨论】:

  • 嗨@MiroslavAtanasov,如果这个或任何答案解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
猜你喜欢
  • 2021-01-26
  • 2021-03-27
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 2015-02-21
  • 2011-03-03
  • 1970-01-01
相关资源
最近更新 更多