从另一个查询中的select FOR EACH匹配中插入多行

时间:2012-08-06 13:14:04

标签: php mysql join nested-sets insert-select

我的查询语法有问题,而且可能是由于我对JOIN的知识缺乏而且正在稳步提升。

这是INSERT查询的单数版本,我试图根据另一个查询的结果多次迭代。

INSERT INTO sch_nested_parts
  (component_tree_id, part_id, lft, rgt, dependency)
SELECT $parentTreeId, part_id, lft+1, rgt+1, $childTreeId
FROM sch_nested_parts
WHERE component_tree_id = $childTreeId

值$ parentTreeId是FOR EACH存在的位置,因为缺少更好的短语。而不是作为插入的单个树有多个。

我想根据以下内容多次插入:

SELECT component_tree_id
FROM sch_nested_parts
WHERE dependency = (
  SELECT component_tree_id
  FROM sch_nested_parts
  WHERE part_id = $childId AND lft = 1
)

这意味着每个包含我们正在添加的孩子的树我将使用一些调整的值插入该孩子的子部分。

如果我让事情有点混乱,我很抱歉,但我很乐意澄清我不清楚的任何方面。这是对嵌套集模型的修改,以允许多个父项。

0 个答案:

没有答案