2012-05-13 184 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

工程就像一个魅力!非常感谢! –

相关问题