表 A ID  CAPTION   FID
1    ASDF     0
2    ASDF     1
3    ASDF     1
4    ADFF     1
5    ASDF     2表 BNid CONTEN  ID
1    DDDF   0
2    ASDF   1
3    ASDF   1
4    ASDF   1
5    ASDF   2
6    ASDF   2A B表ID关联 想通过输入 A表的ID查找与A表FID相等的集合, 然后再根据这个已查出的集合查找B表中的所有相关内容 这个SQL 该怎么写呢?

解决方案 »

  1.   

    select *
    from A
    left join B on A.FID=B.ID
    where A.ID=1
      

  2.   

    select *
    from A
    left join B on A.FID=B.ID
    where A.ID=1
      

  3.   

    select *
    from A
    left join B on A.FID=B.ID
    where A.ID=你要找的ID
      

  4.   

    select *
    from A
    left join B on A.FID=B.ID
    where A.ID=youenterID
      

  5.   

    select *
    from A
    left join B on A.FID=B.ID
    where A.ID="你的条件"
      

  6.   

    select * 
    from A 
    left join B on A.FID=B.ID 
    where A.ID=你要找的ID 
      

  7.   

    A B表ID关联 => 是A.ID=B.ID还是A.FID=B.ID?
    通过输入 A表的ID查找与A表FID相等的集合 => 是说通过A.ID查出与该条记录的FID相等的A中的集合吗?
      

  8.   

    --> Test Data: @A
    declare @A table ([ID] int,[CAPTION] varchar(4),[FID] int)
    insert into @A
    select 1,'ASDF',0 union all
    select 2,'ASDF',1 union all
    select 3,'ASDF',1 union all
    select 4,'ADFF',1 union all
    select 5,'ASDF',2
    --> Test Data: @B
    declare @B table ([Nid] int,[CONTEN] varchar(4),[ID] int)
    insert into @B
    select 1,'DDDF',0 union all
    select 2,'ASDF',1 union all
    select 3,'ASDF',1 union all
    select 4,'ASDF',1 union all
    select 5,'ASDF',2 union all
    select 6,'ASDF',2--Code
    --select * from @A
    --select * from @Bdeclare @aid int--A表的ID
    set @aid=2
    select b.* from
    (
    select * from @A  where fid=(select fid from @a where id=@aid)
    ) a
     join @B b on a.id=b.id --Drop--Result
    /*
    Nid         CONTEN ID
    ----------- ------ -----------
    5           ASDF   2
    6           ASDF   2
    */
      

  9.   

    select * from B
    join (select A.ID from A where A.ID=A.FID) C on B.ID=C.ID
      

  10.   


    明明是查B表的 为什么是from A?还有 楼主的表述好像不是很清楚啊
    通过A表的ID 查找什么与A表FID相等的集合
    然后再根据这个已查出的集合 查找B表中的所有相关内容--什么叫相关内容?
      

  11.   

    交叉查询写法:select * from A,B where A.FID=B.FID and A.ID='ID'
      

  12.   

    楼上  B表中可没有FID这个字段的啊
    是不是楼主打错了啊
      

  13.   


    楼主说的好像是查找B表中的所有相关内容,那么应该是
    select B.* from A,B.....
      

  14.   


    引用错了 ,是不是这样的:select B.* from A,B where A.FID=B.ID and A.ID='输入的ID'
      

  15.   

    问题解决! 我想要的是这样
    select * from 
    (select * from b inner join a on b.id =a.id ) 
    where b.id=[输入值]