1

CARS と ORDERS の 2 つのテーブルがあります。

どちらにもマイレージ列がありますが、ORDERS テーブルのマイレージ列はほとんどの行で空白です。

ORDERS.mileage を CARS.mileage に更新したいと思います。それらは Vrm 列によってリンクされています。

誰かがこのクエリを手伝ってくれますか?

UPDATE orders
SET Mileage = (SELECT *
FROM `orders`
JOIN cars ON orders.Vrm = cars.Vrm
WHERE orders.mileage = '')
4

3 に答える 3

2

サブクエリを使用するのではなく、's 句で a を使用しJOINますUPDATEFROMそうでなければ、あなたは基本的に正しい考えを持っています。

UDPATE
  orders
  JOIN CARS ON orders.Vrm = cars.VRM
SET orders.Mileage = cars.mileage
WHERE orders.mileage = ''
于 2013-02-06T14:16:48.930 に答える
0

MySQLのドキュメントによると、これを使用する必要があります。

UPDATE orders, cars
SET orders.Mileage = cars.mileage
WHERE orders.Vrm = cars.Vrm AND orders.mileage = ''
于 2013-02-06T15:26:41.233 に答える
0

クエリ 1:

UPDATE orders
SET Mileage = (SELECT c.mileage
               FROM cars c 
               WHERE orders.Vrm = c.Vrm)
WHERE o.mileage = ''

クエリ 2:

UPDATE orders o
JOIN cars c ON o.Vrm = c.Vrm 
SET o.Mileage = c.mileage
WHERE o.mileage = ''

いくつかのsqlfidleの例

于 2013-02-06T15:18:08.337 に答える