0

我有tbltransfer哪个包含locationeq_id。我想将locationintblequipments的值更改为locationfrom tbltransferwhere eq_idin的值tblequipments等于eq_idin 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 将为更新语句中的每一行运行子查询。最好在这里使用 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 回答