将3个表格合并为一个并插入数据库

时间:2014-03-15 18:15:12

标签: php mysql database join

我想在我的数据库中将3个表组合成1个。 我的表名= table1,table2,table3 我正在将数据插入table4 每个表都有代码列,团队,p1,p2,p3

它没有进入数据库。

我希望数据库中的合并插入内容如下所示:

代码,团队,名称1,名称2,名称3,名称4,名称5,名称6,名称7,名称8,名称9

这里是我的表格列 表1:名称1,名称2,名称3 表2:名称4,名称5,名称6 表3:名称7,名称8,名称9

这是我到目前为止所做的,但它不起作用。有什么帮助吗?

INSERT INTO table4
VALUES (code,team,name1,name2,name3,name4,name5,name6,name7,name8,name9)
SELECT table1.code1, 
       table1.team1, 
       table1.name1, 
       table1.name2, 
       table1.name3, 
       table2.name4, 
       table2.name5, 
       table2.name6, 
       talbe3.name7, 
       table3.name8, 
       table3.name9 
FROM table1, table2, table3
WHERE table1.team = table2.team  
AND table3.team = table1.team
AND table3.team = table2.team
INSERT INTO table4 VALUES ($code, $team, $name1, $name2, $name3, $name4, $name5, $name6,     
$name7, $name8, $name9);

2 个答案:

答案 0 :(得分:0)

好吧,伙计......因为我理解你的问题,你要合并桌子或类似的东西。 现在在您查询中您只是从三个表中选择数据,但是将它插入到4个表中。 为此你必须将SELECTED结果存储到变量或数组中,然后逐个将它插入到4表中。 参考Google;如果你堆积在某些地方...

一切顺利(Y)

答案 1 :(得分:0)

我认为你收到错误是因为你在name 9之后有一个逗号,你也不应该在名字中有空格。假设您实际上并不想要空格,我们还可以将您的查询优化为正确的ANSI语法:

INSERT INTO table4 (code,team,name1,name2,name3,name4,name5,name6,name7,name8,name9)
SELECT TableOne.code
    ,TableOne.team
    ,TableOne.name1
    ,TableOne.name2
    ,TableOne.name3
    ,TableTwo.name4
    ,TableTwo.name5
    ,TableTwo.name6
    ,TableThree.name7
    ,TableThree.name8
    ,TableThree.name9 
FROM table1 AS TableOne
INNER JOIN table2 AS TableTwo ON TableTwo.team = TableOne.team
INNER JOIN table3 AS TableThree ON TableThree.team = TableTwo.team

假定code的别名来自table1。我假设您在SELECT之后的逗号后面team name9收到了一个含糊不清的错误。