0

我有一个 customer_product 表,其中标识符是“stock_code”。

然后我有三个表:

  • bom_component
  • 路由
  • 材料工艺

这些表中的每一个都通过它的 stock_code 连接到 customer_product 并包含各种其他字段。

我正在尝试选择 customer_products,其中其他三个表中的记录完全相同,并且只返回重复项的 stock_code。

任何帮助解决这个问题都会很棒,谢谢。

编辑:为了澄清,当我说“其他表中的记录相同”时,我的意思是:

(以路由为例)

stock_code 部门序列
1234 货物 1
1234 准备 2
1234 包装 3
3344 货物 1
3344 准备 2
3344 包装 3
5661 货物 1
5661 包装 2

这里将返回股票代码 1234 和 3344,因为它们在路由中的记录完全匹配。

我正在使用 mySQL。

4

1 回答 1

0

根据您使用的 RDBMS,您可以使用 INTERSECT 语句,它基本上类似于 UNION,但只返回在所有单独的 SQL 语句中存在匹配的行。

SELECT stock_code, price FROM bom_component
INTERSECT
SELECT stock_code, price FROM routing
INTERSECT
SELECT stock_code, price FROM material_process

这将返回有重复的行。我假设价格为一列,但只需添加您想要制定唯一标准的列。

于 2012-12-06T10:48:46.583 回答