在MySQL中加入父/子节点表的问题 - 减少了结果集

时间:2014-06-02 17:38:46

标签: mysql sql join parent-child resultset

我在填充名为component_has_component的表时遇到问题,该表将父节点引用到其子节点。

我已经在物料清单Excel工作表中创建了一个包含父ID和子ID的临时表,需要查找与每个组件关联的唯一键。

查询如下:

INSERT
INTO   component_has_component
       (parent_component_key, parent_index, child_component_key, child_index, amount)
SELECT c.component_key, c.component_index, p.component_key, p.component_index, t.amount
FROM   component c, component p, temp_comp_has_comp t
WHERE  t.parent = c.component_id 
  AND  t.child = p.component_id;

但是,此查询返回的行数少于原始temp_comp_has_comp(16对27),我似乎无法找到原因。

这就是temp_comp_has_comp的样子:

id  parent   child      amt
1   A014_06  A033_06    1
2   A231_01  A033_06    1
3   A230_01  A045_04    2
4   A257_01  A0568      1
5   A231_01  A167_01    1

我加入的方式是否有问题,例如是否省略了重复的ID?

1 个答案:

答案 0 :(得分:0)

谢谢你们,你们是对的。我完全忽视了这种可能性,我们的导入宏出现了问题,现在已经修复了。

对于组件表,缺少5个条目,现在从上述查询返回27个结果。

最佳, 的Marius