SQL 表A(id,no,name)、表C(no)怎么判断每个人缺少的no并且把缺少的新增进表A

表A数据
(1,'A','张三','add')
(1,'B','张三','del')
(2,'A','李四','add')
(3,'B','王五','update')

表C数据
(A)
(B)
(C)

怎么判断每个人缺少的no并且把缺少的新增进表A ???
如张三缺少C,则新增(1,'B','张三','add')、(1,'C','张三','add');
李四缺少B、C,则新增(2,'B','李四','add')(2,'C','李四','add');
    王五缺少A、C,则新增(3,'A','王五','add')(3,'C','王五','add');
以此类推、、、
以前发你的SQL,把中文的替换成你的字段,关键是 not in的时候加一个where就行。del的记录就当没有就行了。
 insert into ma(id,fe,vname,状态字段) values(
SELECT id,vname,fe,'add' FROM (
select c.*,c.vname + ','+c.fe as kid from (
select * from 
(
select distinct id,vname from ma
) a,
(select fe from mb)
b 
) c 
) D 
where kid not in(SELECT VNAME+','+FE FROM ma where 状态字段<>'del')
)

记得以前写过吧,多了一个add,del,update。上面举例不清,没有说明白add,del,update和缺数是什么关系

提供一个思路给你,先按照名字对A表的数据进行分组,再对分组的数据取出no和c表取交集,得出不在c表的no,最后插入该no对应的数据到a表。