表 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 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 该怎么写呢?
from A
left join B on A.FID=B.ID
where A.ID=1
from A
left join B on A.FID=B.ID
where A.ID=1
from A
left join B on A.FID=B.ID
where A.ID=你要找的ID
from A
left join B on A.FID=B.ID
where A.ID=youenterID
from A
left join B on A.FID=B.ID
where A.ID="你的条件"
from A
left join B on A.FID=B.ID
where A.ID=你要找的ID
通过输入 A表的ID查找与A表FID相等的集合 => 是说通过A.ID查出与该条记录的FID相等的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
*/
join (select A.ID from A where A.ID=A.FID) C on B.ID=C.ID
明明是查B表的 为什么是from A?还有 楼主的表述好像不是很清楚啊
通过A表的ID 查找什么与A表FID相等的集合
然后再根据这个已查出的集合 查找B表中的所有相关内容--什么叫相关内容?
是不是楼主打错了啊
楼主说的好像是查找B表中的所有相关内容,那么应该是
select B.* from A,B.....
引用错了 ,是不是这样的:select B.* from A,B where A.FID=B.ID and A.ID='输入的ID'
select * from
(select * from b inner join a on b.id =a.id )
where b.id=[输入值]