mySQL,三个表:UPDATE多行(每行有不同的值)

时间:2012-06-08 17:01:03

标签: mysql sql join

mySQL中有三个表:

TABLE:CollectionAttributeValues
cID
akID
avID

TABLE: atDefault
avID
value

TABLE: CollectionVersions
cID
cvName

看起来像

CollectionVersions
cID  cvName
1    Billete
5    Tony

atDefault
avID value
1    B.B
3    T.T

CollectionAttributeValues
cID akID avID
1   29   1
5   29   3

我需要在 atDefault“中获取所有(列名为值) 并将其放入 CollectionVersions 中的 cvName CollectionAttributeValues

中的akID = 29

基本上,取“Billette”并将其改为“B.B”。并且还取“Tony”并将其更改为“TT”。

到目前为止,我想出了这个

SELECT value
FROM `atDefault` AS d
LEFT JOIN `CollectionAttributeValues` AS v ON d.avID = v.avID
WHERE v.akID =29

但我不知道如何将结果值插入CollectionVersions中的“cvName”列...

1 个答案:

答案 0 :(得分:1)

使用您从查询中获得的数据UPDATE到表CollectionVersions的所有列UPDATE CollectionVersions cv SET cvName = (SELECT value FROM `atDefault` AS d LEFT JOIN `CollectionAttributeValues` AS v ON d.avID = v.avID WHERE v.akID =29 AND cv.cID = v.cID) 。请尝试以下查询 -

{{1}}