2012-05-13 114 views
0

我有tbltransfer其中包含locationeq_id。我想用locationtbltransfer值改變location的價值在哪裏tblequipmentseq_idtblequipments等於在tbltransfereq_id。這是我想出的查詢:使用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

工程就像一個魅力!非常感謝! –

相關問題