Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将3个表合并为一个表并插入数据库_Php_Mysql_Database_Join - Fatal编程技术网

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

Php 将3个表合并为一个表并插入数据库,php,mysql,database,join,Php,Mysql,Database,Join,我试图在我的数据库中将3个表合并成1个表。 我的表名=表1、表2、表3 我正在把数据插入表4 每个表都有代码、团队、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

我试图在我的数据库中将3个表合并成1个表。 我的表名=表1、表2、表3 我正在把数据插入表4 每个表都有代码、团队、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);

好吧,伙计。。。正如我理解你的问题,你将要合并表或类似的东西。 现在在您的查询中,您只是从三个表中选择数据,而不是将其插入到4个表中。 为此,您必须将所选结果存储到变量或数组中,然后将其逐个插入4表中。。 以谷歌为例;如果你把一些放在


最好的(Y)

我认为您会出错,因为您在
名称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
。我假设您的
团队
选择
,在
name9
后面的逗号上方,出现了一个模糊的错误
'name 1'
听起来不是一个有效的列名,您使用的是什么类型的数据库?它是如何工作的?抛出了什么错误?您使用了
选择
代码来插入数据?如果您的列名实际上是
名称1
名称2
,等等。您需要在它们周围添加反勾号
`name 1`
`name 2`
,等等。尽管列名中的空格从来都不是一个好主意。另外,您的
插入到…
的位置在哪里,因为这只显示了
SELECT
进行了更正,但仍然没有进入数据库。已修改为包括放入数据库所需的
插入到
。除非列的名称中有
$
,否则不应包含它们,并且
插入到
语句位于
选择之前。如果仍然没有得到任何值,请单独运行
SELECT
语句以确保实际返回值。我的错误--#1064-您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以了解在第4行“SELECT table1.code,table1.team,table1.name1,table1.name3”附近使用的正确语法顺便说一句——我将此代码直接放在phpmyadmin sqlin中,这不适合复制和粘贴,在SELECT
语句中使用该
INSERT时,不包括
值。