我也没有看懂。
不知道是不是这个:
select b.* from a,b where a.number=b.number group by b.pid having count(b.pid)>1

解决方案 »

  1.   

    我看最关键的是你要找的是'所有父ID相同的记录',其中父id是一个还是多个?
    如果是多个jiezhi(西域浪子)说的就没错,如果是一个则修改如下:
    select b.* from a,b where a.number=b.number and b.pid = pid group by b.pid having count(b.pid)>1
      

  2.   

    select * from A,B where A.Number=B.Number and B.PID=A.PID
      

  3.   

    jiezhi(西域浪子) 应该就是这个意思
      

  4.   

    对不起各位,我没说清楚你们也没明白我的意思.我是要将B中Number=A中Number的记录找出来,
    然后,把B中所有PID相同的记录找出来,并不是要统计数量
      

  5.   

    对不起还是没说清楚我是要将B中Number=A中Number的记录找出来,
    然后从这条记录中得到B.PID,
    并把B中所有PID都等于这条PID的记录找出来,并不是要统计数量
      

  6.   

    select b1.* from b b1 
      where exists (select 1 from a,b b2 where a.number=b2.number and b2.pid=b1.pid);
      

  7.   

    其实就是
    SELECT * FROM B WHERE
     B。PID IN (SELECT B。PID FROM A,B WHERE A。NUMBER=B。NUMBER);
    对吧。
      

  8.   

    select pid,count(1) num from a,b where a.number=b.number group by b.pid;
      

  9.   

    SELECT B.* FROM TAB_2 C WHERE EXISTS
    ( SELECT 1 FROM TAB_1 A, TAB_2 B WHERE A.NUMBER = B.NUMBER AND B.PID = C.PID )
      

  10.   

    更正一下:SELECT C.* FROM TAB_2 C WHERE EXISTS
    ( SELECT 1 FROM TAB_1 A, TAB_2 B WHERE A.NUMBER = B.NUMBER AND B.PID = C.PID )
      

  11.   

    回复人: tuidler() ( ) 信誉:100  2003-03-19 11:35:00  得分:0   其实就是
    SELECT * FROM B WHERE
     B。PID IN (SELECT B。PID FROM A,B WHERE A。NUMBER=B。NUMBER);
    对吧。
    ============================================================================
    好象只有这个比较对,B.PID=C.PID的这种肯定是不对的
    只有表B有PID字段不过我要写的其实比这个复杂得多,这个问题只是其中的一部分,给我时间试试再来结贴