【问题标题】:Build MySQL query insert data from 3 tables to the 4. table构建 MySQL 查询将 3 个表中的数据插入到 4. 表中
【发布时间】:2015-06-18 07:54:00
【问题描述】:

我有 3 个源表和 1 个目标表。我想将数据从源表复制到从 1.table->2.table->3.table->4.table 链接的目标表。
这是一个例子:

表格1: |编号 |第 1 列 |第 2 列 |第 3 列 |第 4 列 | | 1 |亚洲 |中国 | | | 表2: |编号 |专栏 |专栏b |专栏c |专栏 | | 1 | 1 |水果 | | | 表3: |编号 |专栏 |收藏 |列x |专栏 | | 1 | 1 |甜 | | | 表4: |编号 | A 栏 | B 栏 | C 列 | D 列 | E 栏 | F 列 | G 栏 | | 1 | 1 | | | | |杨梅 | http:// |

我需要这个结果:

表4: |编号 | A 栏 | B 栏 | C 列 | D 列 | E 栏 | F 列 | G 栏 | | 1 | 1 |亚洲 |中国 |水果 |甜 |杨梅 | http:// |

table1中column1和column2下的group name和1.subgroup,2.subgroup在table2 columnb where columna = table1 id,3.subgroup在table3 columnb where columnz = table2 id,文章在table4 columnF 和 columnG 中的文章 url 其中 columnA = table3 id。

非常感谢您的帮助。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    这是使用JOIN 获取值的UPDATE 语句。

    UPDATE table4 AS t4
    JOIN table1 AS t1 ON t1.id = t4.columnA
    JOIN table2 AS t2 ON t2.columna = t4.columnA
    JOIN table3 AS t3 ON t3.columnz = t4.columnA
    SET t4.columnB = t1.column1, t4.columnC = t1.column2,
        t4.columnD = t2.columnb, t4.columnE = t3.columny
    

    【讨论】:

    • 这并不能完全“解决”完整的问题。您也应该添加insert 语句。
    • 谢谢,我误会他在修改表4。
    • 感谢 Barmar 的建议,这个想法很好,但你的脚本不是!正确的方法是考虑 JOIN-s:并非所有都是 = t4.columnA 只有“JOIN table3 AS t3 ON t3.columnz = t4.columnA”其他 JOIN-s 是“JOIN table2 AS t2 ON t2.id = t3 .columnz" 和 "JOIN table1 AS t1 ON t1.id = t2.columna" 更改后需要像这样更改查询顺序:
       UPDATE table4 AS t4 JOIN table3 AS t3 ON t3.columnz = t4.columnA JOIN table2 AS t2 ON t2.id = t3.columnz JOIN table1 AS t1 ON t1.id = t2.columna SET .... 
      需要将“columnA = t3.columny”改为columnE = t3.columny!谢谢
    • 连接上表中的列或使用table4 将它们全部连接都没有关系,因为连接列都是相等的。
    【解决方案2】:

    您可以尝试这样的方法,这可能会解决您的问题:

    insert into table4 (cola,colb...)
    values((select cola from tab1),(select cola from tab2)...)
    

    我没有检查代码,但我认为这会有所帮助。

    【讨论】:

    • 由于table4 已经包含行并且只需要填写一些列,因此您需要UPDATE,而不是INSERT
    • 看了上面的答案,我以为你在找插入。我会尽快更新我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 2017-07-16
    • 2020-09-11
    • 2022-10-01
    • 2015-02-24
    • 2015-05-13
    相关资源
    最近更新 更多