2009-10-02 81 views
0

我正在使用INSERT .. SELECT来从表中'复制'行(使用不同的外键)。MYSQL插入..选择 - 具有外键的多个行和表?

这工作正常,但它插入多行,我现在需要做另一个INSERT插入多个行,链接到每个单独的行在以前的选择......这有意义吗?哈哈。

基本上,table1和table2之间有一对多的关系。 table1和table3之间有一对一的关系。我从table1(及其相关的链接table2行)'分配'行到table3上的新行(我有这个mysql_insert_id)。我试图用尽可能少的查询来做到这一点。

我举一个例子,


你有一个products表的options表和option_items表。每个option有多个option_items,每个product可以有多个options应用于它。

Product1具有适用于它的选项ColourColour有项目BlueGreenProduct1还应用了其拥有的项目SmallLargeSize选项。

我希望用新的ID复制产品,这意味着复制optionsoption_items表中的行并重新创建其相关外键。

我已经创建了新产品并拥有了productid。

现在我需要复制选项获取新option的ID,复制项目并将新创建的option的ID分配给items(保留项目关系的选项)。

任何帮助将不胜感激!

+0

不行,没有意义。请编辑并提供一些示例数据。 – longneck 2009-10-02 14:22:34

+0

我已经添加了一个例子,希望有所帮助。 – Joel 2009-10-05 08:37:00

+0

请添加表格DDL和示例查询(到目前为止您已经能够找到的查询),以便我们可以查看您要做的事情。否则,它很难回答。 – 2009-10-05 18:43:35

回答

0

对不起,废话的问题!我结束了使用循环而不是复杂的查询。可能不是最好的解决方案,但迄今为止最直接的:)

感谢您阅读家伙。