0
我希望你的一天比我的更好。我想今天早上我有一個簡單的任務,就是基於一個普通的列,在mysql(Distrib 5.5.43,用於debian-linux-gnu)中組合兩個表。基本上結構如下:MySQL列使用IF(#1054 - 'where子句'中的未知列')UPDATE數據替換
Practice1
Hip Description Purchaser Price
1 Bill Smith Sam Dillon $300,000
2 Justin Boyle Sarah Jones $75,000
3 Kevin Bains Anne Helan $120,000
4 Greg Demtri James Coon $250,000
Practice2
COL 1 COL 2 COL 3
2 James King $80,000
4 Bill Smell $300,000
我想要做的是更新Practice1與Practice2的值。最終的結果是這樣的:
Practice1
Hip Description Purchaser Price
1 Bill Smith Sam Dillon $300,000
2 Justin Boyle James King $80,000
3 Kevin Bains Anne Helan $120,000
4 Greg Demtri Bill Smell $300,000
我試過什麼(沒有工作)至今一直:
UPDATE Practice1
SET Practice1.Purchaser=(SELECT `COL 2` FROM `Practice2` WHERE Practice1.Hip=`Practice2`.`COL 1`),
Practice1.Price=(SELECT `COL 3` FROM `Practice2` WHERE Practice1.Hip=`Practice2`.`COL 1`)
ORDER BY Practice1.Hip
什麼結束了發生的事情是我想要的是更新的信息,但是沒有想到的信息變成了NULL! IE-
Practice1
Hip Description Purchaser Price
1 Bill Smith NULL NULL
2 Justin Boyle James King $80,000
3 Kevin Bains NULL NULL
4 Greg Demtri Bill Smell $300,000
所以,我想一個 「IF」 語句的類型:
UPDATE Practice1
SET Practice1.Purchaser = if(Practice1.Purchaser=Practice2.`COL 2`, Practice1.Purchaser, Practice2.`COL 2`),
Practice1.Price = if(Practice1.Price=Practice2.`COL 3`, Practice1.Price, Practice2.`COL 3`)
WHERE Practice1.Hip=Practice2.`COL 1`
ORDER BY Practice1.Hip
它給我的錯誤 「1054 - 未知列 'Practice2.COL 1' 在 'where子句'」 我認爲我錯過了一些基本的東西(我希望)。
感謝您的快速修復。沒有多餘和重點。另外,感謝您的鏈接。我不知道我可以模擬SQL代碼的網站。 –