1

mySQL に 3 つのテーブルがあります。

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 WHERE akID = 29 in CollectionAttributeValues 入れる必要があります。

基本的には「ビレット」を「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 に答える