2016-07-15 51 views
0

我一直使用本網站來查找我的問題的答案,但這是我第一次提出問題。mysql - 將查詢結果插入到與連接相同的表中

我有兩個表,並希望查詢表和結果插入兩列的表1事情是這樣的:

SELECT a.column1 from table1 a LEFT Join (SELECT 'column1' from 'table2') AS a ON where a.column1 like '%column1.table2%'; 

基本上然後將結果爲column5和column6在表1

我知道這是不正確的,因爲它不起作用,它不會更新任何東西。爲了測試,我在運行更新命令之前運行select語句進行驗證。我需要的另一種說法是:

如果table1中的column1與table2中的column1相似,那麼更新table1中的column5與table2中column2中的對應條目並更新table1中的column6與來自table1中的column7以及column3中的對應條目表2;

我意識到這不是最好的解釋,但這是我能解釋我想要的最好方式。如果需要更多信息,請提問,我會盡我所能解釋。

感謝您的任何輸入。

回答

0

在MySQL中,你可以在一個單一的更新語句做多表更新使用連接表列表:

update t1 inner join t2 on t1.column1 like concat('%',t2.column1, '%') 
set t1.column5=t2.column2, t1.column6=t2.column7 

然而,使用類似的不一定是最好的主意,因爲從T2超過1個記錄可能與t1中的相同記錄相匹配,因此單次t1記錄可能會在單次運行中更新多次。

你說明哪個t1字段應該由t2中的哪個字段更新是不準確的,不能真正告訴那裏的邏輯。

+0

這是完美的工作。非常感謝 !!!! – noobie01