1

我在 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 中的所有名为 values 的列) 放入CollectionVersions中的cvName中,其中CollectionAttributeValues中的 akID = 29

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

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

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

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

4

1 回答 1

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)
于 2012-06-08T17:05:52.533 回答