Tabel A:更新テーブルA列名として
Id |sku |Country |pricecountry
1 b1 Netherlands *null*
表B:
sku |Germany |France |Netherlands
b1 3,88 7,55 6,14
目標はSKU1で、表Aの列pricecountryを更新することです。
UPDATE tableA a
LEFT OUTER JOIN
(
SELECT sku, 'Germany' AS country, Germany AS pricecountry
FROM tableB
UNION
SELECT sku, 'France', France
FROM tableB
UNION
SELECT sku, 'Netherlands', Netherlands
FROM tableB
) b
ON a.sku = b.sku
AND a.country = b.country
SET a.pricecountry = b.pricecountry
しかし、あなたが必要となる - このケースでは、私はこのような何かを考えるが、すべての列のためにそれをやって...
UPDATE tableA as a SET
a.pricecountry = (select column(a.country)
FROM tableB as b
WHERE a.sku = b.sku and
column(a.country)
);
表Bはよく設計されていません。あなたがオプションを持っているなら、正規化しようとするべきです(例えば、sku、country、value) –
@ P.Salmonそれで、Bの構造はAの構造にマッチします。それで、Opは何を達成しようとしているのでしょうか? BをAに正規化しますか? – MatBailie