2012-05-13 14 views
0

にはlocationeq_idが含まれています。 locationの値をに変更して、locationの値をからeq_idtblequipmentsに変更する場合は、をtbltransferに設定してください。これは私が思いついたクエリです:mysqlの別のテーブルの値を持つテーブル内の値を更新する

UPDATE tblequipments 
    SET LocationName = (
     SELECT t.Location from tbltransfer as t 
     join tblequipments as e on t.eq_ID = e.eq_ID 
     WHERE t.transactionID=%s 
    ) 
+0

あなたの実際の質問は何ですか? – Polsonby

+0

@Flubba上記のシナリオを実行する正しいクエリを探しています –

答えて

1

mysqlはupdate文の各行に対してサブクエリを実行します。それがここで結合を使用した方がよい:

UPDATE 
    tblequipments, 
    tbltransfer 
SET 
    tblequipments.location = tbltransfer.location 
WHERE 
    tblequipments.eq_id = tbltransfer.eq_id 
AND 
    tbltransfer.transactionID = %s 
1
UPDATE tblequipments 
INNER JOIN tbltransfer ON tblequipments.eq_ID = tbltransfer.eq_ID 
SET tblequipments.LocationName=tbltransfer.Location 
WHERE tbltransfer.transactionID=%s 
+0

魅力的な作品です!どうもありがとうございます! –