从多个连接表中选择重复项

时间:2012-12-06 10:12:57

标签: mysql having

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

然后我有三张桌子:

  • bom_component
  • 路由
  • material_process

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

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

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

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

(以路线为例)

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

此处将返回股票代码1234和3344,因为他们在路由中的记录是完全匹配。

我正在使用mySQL。

1 个答案:

答案 0 :(得分: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

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