2013-04-01 62 views
2

我只想知道如果可以在同一个数据库中将数据从一个表列复制到另一个表中?下面的代码不适用于我的MySQL版本,但它应该工作。Php和MySql - 将数据从一个表复制到另一个表

UPDATE `table1` SET `table1.column1` = 
(SELECT `table2.column2` FROM table2 WHERE `table1.city` = 'table2.city') 
WHERE `listing` ='5' 

你有什么想法吗? 谢谢!

家伙,因为我认为解决方案是可能的PHP脚本,并解决这个问题作一个简短的脚本,它会做这一切了while循环:)

谢谢大家对加入这个讨论!


的解决办法是在``他们之间的标记应该是列名, 这工作不错,喜欢!

+0

WHERE table1.city = table2.city这不会像你所做的那样工作 –

+0

你是怎么想的,为什么? – LjekiDex

+0

http://stackoverflow.com/questions/4920394/how-to-update-one-table-data-from-another-table-data-in-sql-server-2005 只需要经过这个 –

回答

1

是的,你可以用INSERT ... SELECT Syntax喜欢做的事:

INSERT INTO database2.table1 (field1,field3,field9) 
SELECT table2.field3,table2.field1,table2.field4 
FROM table2; 

检查Mysql

+0

INSERT INTO table1(field1)SELECT table2.field2 FROM table2 WHERE table2.city = table1.City ....这是行不通的 – LjekiDex

+0

@LjekiDex,它似乎是正确的,是什么问题? –

+0

嗨Suersh说#1054 - 未知列'table1.City'在'where子句' – LjekiDex

0

INSERT INTO table2 
    AS (SELECT * 
FROM table1 
WHERE table1.city = table2.city AND 
listing = 5); 

尝试为每列尝试像

INSERT INTO table2 (columnname1) values (SELECT columnname1 FROM table1 
WHERE table1.city = table2.city AND 
listing = 5); 
+0

不,我不需要这个,我只想改变一列。 – LjekiDex

+0

然后尝试我的编辑 – Gautam3164

+0

没有家伙,这不工作。 – LjekiDex

1

它看起来像你试图执行更新,而不是插入。

UPDATE table1 AS t1 INNER JOIN table2 AS t2 ON t1.city=t2.city 
SET t1.column1 = t2.column2 
WHERE t1.listing ='5' 

在你确实需要将数据从一个表复制到其他情况,那么你需要遵循以下语法:

INSERT INTO tablename (field1,field2,field3) (SELECT field1,field2,field3 FROM another_table); 
+0

是的,因为已经有数据需要更新的列... – LjekiDex

0

试试这个。

UPDATE table1, (
    SELECT table2.city, table2.column2 
    FROM table2 ) table2 
SET table1.column1 = table2.column2 
WHERE table1.city = table2.city 
AND listing ='5' 
相关问题