2013-04-01 65 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' 
相關問題