首页 > 解决方案 > 多个表加入重复行(问题是主键引起的吗?)

问题描述

我想将这三个表连接在一起,但结果与我的预期不符。

表 1: Brand_Table_ID:(customer_ID & Product_ID & Sub_type_product_ID)

Brand_Table_ID 客户ID 产品_ID 子类型产品 ID 品牌价值
AAA01_PPP01_01 AAA01 PPP01 01 一个 2021/06
AAA01_PPP01_02 AAA01 PPP01 02 一个 2021/06

表 2:Potential_Table_ID:(customer_ID & Product_ID & Sub_type_product_ID)

潜力_表_ID 客户ID 产品_ID 子类型产品 ID 潜在价值
AAA01_PPP01_01 AAA01 PPP01 01 高的 2021/06
AAA01_PPP01_02 AAA01 PPP01 02 低的 2021/06

表 3 Transaction_ID : (customer_ID & Product_ID & Sub_type_product_ID)

交易ID 客户ID 产品_ID 子类型产品 ID 销售员_ID
AAA01_PPP01_01 AAA01 PPP01 01 SSS01 2021/06
AAA01_PPP01_02 AAA01 PPP01 02 SSS02 2021/06

组合这三个表后,我预计结果将是:

交易ID 客户ID 产品_ID 子类型产品 ID 销售员_ID 品牌价值 潜在价值
AAA01_PPP01_01 AAA01 PPP01 01 SSS01 一个 高的 2021/06
AAA01_PPP01_02 AAA01 PPP01 02 SSS02 一个 低的 2021/06

但是,我得到了这个结果

交易ID 客户ID 产品_ID 子类型产品 ID 销售员_ID 品牌价值 潜在价值
AAA01_PPP01_01 AAA01 PPP01 01 SSS01 一个 高的 2021/06
AAA01_PPP01_02 AAA01 PPP01 02 SSS02 一个 高的 2021/06
AAA01_PPP01_02 AAA01 PPP01 02 SSS01 一个 低的 2021/06
AAA01_PPP01_02 AAA01 PPP01 02 SSS02 一个 低的 2021/06

我想知道会发生什么情况。是不是因为这三个表的主ID不唯一?

如果是的话,作为 ( customer_ID & Product_ID & Sub_type_product_ID & Salesperson_ID ) 或 ( customer_ID & Product_ID & Sub_type_product_ID & Salesperson_ID & Month ) 的唯一 ID 设计会很棒吗?

或者,在我合并表格之前,它是否有我应该知道的额外知识?

标签: joindatabase-designforeign-keysprimary-key

解决方案


推荐阅读