多表修改:
下例会在udata_unit_config的unit_id满足条件后,会一起将udata_unit_config、udata_unit_dimension_drilling、udata_unit_drilling_config三张表的isdel字段,同时修改为1。
UPDATE udata_unit_config AS uuc
LEFT JOIN udata_unit_dimension_drilling AS uudd ON uuc.id = uudd.unit_config_id
LEFT JOIN udata_unit_drilling_config AS uudc ON uudd.id = uudc.drilling_id
SET uuc.isdel = 1,
uudd.isdel = 1,
uudc.isdel = 1
WHERE
uuc.isdel = 0
AND uuc.unit_id = #{unitId}
多表删除:
下例会在udata_unit_config的unit_id满足条件后,会一起将udata_unit_config的条目、udata_unit_dimension_drilling连接的条目、udata_unit_drilling_config连接的条目,同时删除。
DELETE uuc,
uudd,
uudc
FROM
udata_unit_config AS uuc
LEFT JOIN udata_unit_dimension_drilling AS uudd ON uuc.id = uudd.unit_config_id
LEFT JOIN udata_unit_drilling_config AS uudc ON uudd.id = uudc.drilling_id
WHERE
uuc.unit_id = #{unitId}
注意,删除的别名问题:
delete from udata_unit_config as uuc where unit_id = '123'; #错误,表起了别名,delete找不到删除目标。
delete uuc from udata_unit_config as uuc where unit_id = '123'; #正确