两张表表A
fID-------subID
d0---------d1
d0---------d2
d0---------d3
r0---------r1
r0---------r2
r0---------r3表B
subID
d1
d2
d3
r1
r2
查处表A 父ID下的所有子ID 都在表B出现的 父ID
按上面例子  符合要求的只有d0

解决方案 »

  1.   

    SELECT a.fID from ta a 
    left join tb b on a.subID=b.subID
    group by a.fID
    having count(a.subID)=count(b.subID)
      

  2.   


    SELECT fid 
    FROM a k
    WHERE NOT exists (
    SELECT fid 
    FROM a LEFT JOIN b ON a.subID=b.subID
    WHERE b.subID IS NULL AND a.fid=k.fid) 
      

  3.   

    SELECT fid 
    FROM a k
    WHERE NOT exists (
    SELECT *
    FROM a LEFT JOIN b ON a.subID=b.subID
    WHERE b.subID IS NULL AND a.fid=k.fid) 
    修改下
      

  4.   

    select fID from A t
    where not exists (select 1 from A where fID=t.fID and subID not in (select subID from B))
      

  5.   


    select aa.fid from( select a.fid,a.subid,b.subid as bid from table1 a left join table2 b on a.subid=b.subid) aa
    group by aa.fid
    having count(aa.bid)=count(aa.subid);
      

  6.   


    create table table1(fid varchar(20),subid varchar(20));
    create table table2(subid varchar(20));
    insert into table1 values
    ('d0','d1'),('d0','d2'),('d0','d3'),
    ('r0','r1'),('r0','r2'),('r0','r3');insert into table2 values('d1'),('d2'),('d3'),('r1'),('r2');
    insert into table2 values('r3');
      

  7.   

    select fID from A t
    where not exists (select 1 from A where fID=t.fID and subID not in (select subID from B))
      

  8.   

    欢迎加入QQ群96040430一起探讨MySQL
      

  9.   

    select a1.fID from A a1 where exists (       
           select a2.subID from A a2 where a1.fID = a2.fID and a2.subID in (
                  select distinct(b1.subID) from B b1
           )
    ) group by a1.fID