【问题标题】:MYSQL Insert .. Select - Multiple rows & tables with foreign keys?MYSQL Insert .. Select - 带有外键的多行和表?
【发布时间】:2009-10-02 11:31:46
【问题描述】:

我正在使用 INSERT .. SELECT 从表中“复制”行(使用不同的外键)。

这很好用,但是它插入了多行,我现在需要执行另一个 INSERT 来插入多行,这些行链接到前一个 SELECT 中的每个单独的行...这是否有意义?哈哈。

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

我举个例子,


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

Product1 应用了选项 ColourColour 应用了 BlueGreenProduct1 还应用了 Size 选项,其中应用了 @987654335 @ 和 Large

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

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

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

任何帮助将不胜感激!

【问题讨论】:

  • 不,没有意义。请编辑并提供一些示例数据。
  • 我添加了一个示例,希望能有所帮助。
  • 请添加表 DDL 和示例查询(到目前为止您已经能够弄清楚的那些),以便我们可以可视化您正在尝试做什么。否则很难回答。

标签: php sql mysql


【解决方案1】:

抱歉这个垃圾问题!我最终只使用了一个循环而不是复杂的查询。可能不是最好的解决方案,但到目前为止是最直接的:)

感谢大家阅读。

【讨论】:

    猜你喜欢
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    相关资源
    最近更新 更多