SQL does not support direct modification of query results, so to which table the field to be modified belongs to, update that table, where the primary key is equal
. The where condition of mysql update does not support the result set of direct in sub-query, so the sub-query needs to be nested outside. One layer query and specify alias
UPDATE
sm_free_member sfm
SET
sfm.order_id =
(SELECT
MAX(order_id)
FROM
sm_order so
WHERE so.member_id = sfm.member_id
AND package_id = 10
AND STATUS = 2)
WHERE sfm.free_member_id IN
(SELECT
temp.free_member_id
FROM
(SELECT
sfm.free_member_id
FROM
sm_free_member sfm,
sm_member sm
WHERE sfm.free_recom_id = 40
AND sfm.member_id = sm.member_id
AND (sm.type = 4
OR sm.type = 5)) AS temp)
mysql batch modify query result set
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=326521157&siteId=291194637
Recommended
Ranking