update sp_class_mapping set c_status=2 WHERE cm_id in (
SELECT cm_id from sp_student_second a right JOIN sp_class_mapping cm on cm.parent_id=a.st_id WHERE `status`=2 and c_status=1
)
错误提示就是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)
这样写是不对的,因为不能在返回的视频的操作数据视图。
解决方案如下:加一个临时表 aa
update sp_class_mapping set c_status=2 WHERE cm_id in (
SELECT aa.cm_id FROM (
SELECT cm_id from sp_student_second a right JOIN sp_class_mapping cm on cm.parent_id=a.st_id WHERE `status`=2 and c_status=1
) aa
)
DELETE from basems_spu_bom_item where item_id in (
select item_id FROM(
SELECT item_id from basems_spu_bom_item where bom_id in (
SELECT bom_id from basems_spu_bom where data_status = -1
)
) as a
)