问题描述:
客户表oa_customer表中,客户数据已扔回公海(sea_type 为1),这部分数据除了创建人外仍存在其他共享数据,需要对共享数据:oa_share_join共享关联表 以及 oa_share_customer共享信息表 中的数据进行删除。
解决步骤:
--(1)查询出扔回公海的客户数据并且负责人中包含除创建人之外的数据
SELECT
id,
cname,
creatid,
charge_person,
sea_type
FROM
oa_customer
WHERE
sea_type = 1
AND charge_person <> CONCAT(creatid, ',')
-- (2) 删除共享关联表中客户为公海数据的
DELETE
FROM
oa_share_join
WHERE
cid IN (
SELECT
id
FROM
oa_customer
WHERE
sea_type = 1
AND charge_person <> CONCAT(creatid, ',')
)
-- (3) 删除与共享关联表相对于的共享信息表数据
DELETE
FROM
oa_share_customer
WHERE
id NOT IN (
SELECT
sid
FROM
oa_share_join
)