0

tbltransferを含むものがlocationありeq_idます。locationintblequipmentsの値をlocationfromtbltransferの値で変更したいと思います。 in はeq_idintblequipmentsと同じeq_idですtbltransfer。これは私が思いついたクエリです:

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
    )
4

2 に答える 2

1

mysql は update ステートメントの各行に対してサブクエリを実行します。ここで join を使用することをお勧めします。

UPDATE
    tblequipments,
    tbltransfer
SET
    tblequipments.location = tbltransfer.location
WHERE
    tblequipments.eq_id = tbltransfer.eq_id
AND
    tbltransfer.transactionID = %s
于 2012-05-13T19:52:51.667 に答える
1
UPDATE tblequipments
INNER JOIN tbltransfer ON tblequipments.eq_ID = tbltransfer.eq_ID 
SET tblequipments.LocationName=tbltransfer.Location
WHERE tbltransfer.transactionID=%s
于 2012-05-13T19:53:43.033 に答える