我在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

我需要在默认情况下获取所有值(名为values的列)
在CollectionVersions中放入cvName
其中,集合属性值中的akID=29
基本上,把“Billette”改成“B.B”。把“托尼”改成“TT”。
到目前为止我想到了这个
SELECT value
FROM `atDefault` AS d
LEFT JOIN `CollectionAttributeValues` AS v ON d.avID = v.avID
WHERE v.akID =29

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

最佳答案

使用从查询中获取的数据来UPDATE表的所有列。尝试以下查询-

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)

10-08 18:01