我有2个表,我需要的是从table1中选择一些列并复制table2中的那些列。我尝试了很多选择但没有任何对我有用。我是php和mysql领域的初学者。这些是我先试过的东西。
`$sql = " UPDATE table1 JOIN table2 ON table1.primary_key =
table2.primary_key SET table1.column1= table2.column1 , table1.column2=
table2.column2 WHERE table1.primary_key = 1 ";
和
`$sql= "update table1 set table1.column1 =
table2.column1 FROM table1 INNER JOIN
table2 on table1.primary_key =
table2.primary_key WHERE table2.primary_key= 1 ";
由于两者都不起作用的原因,我尝试了另一种方法:
$sql= "SELECT column1,column2FROM table2 WHERE primary_key=1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);`
$UpdateQuery ="UPDATE table1 SET column1=$row[column1] ,column2=$row[column2] WHERE primary_key= 1";
mysql_query($UpdateQuery);
这也是一个错误。任何人都可以告诉我如何从sql查询或其他方法中分配列值以满足我的需要。
答案 0 :(得分:0)
一种选择是在JOIN
期间在SQL查询中使用UPDATE
:
UPDATE table1 t1
JOIN
(
SELECT * FROM table2
WHERE table2.primary_key = 1
) t2
ON t1.primary_key = t2.primary_key
SET t1.column1 = t2.column1
我会留给您将其插入到您的PHP代码中,因为原始问题中没有这么多细节。
答案 1 :(得分:0)
如果要从其他表插入数据,可以使用mysql提供的insert ... select语句。 试试这样:
INSERT INTO table1 (table1.column1,table1.column2)
SELECT table2.column1,table2.column from table2
WHERE table1.primary_key = 1
ON DUPLICATE KEY UPDATE table1.column1= table2.column1 , table1.column2=
table2.column2
有关详细信息,请参阅:http://dev.mysql.com/doc/refman/5.6/en/insert-on-duplicate.html