读书人

展示关系结果

发布时间: 2012-12-26 14:39:29 作者: rapoo

显示关系结果
现在有两个表 一表 信息如下

事件ID 用户
1 A
1 B
1 C
1 D
2 B
2 F

二表如下
关注 被关注
A B
A C
A F

现在是用SQL 查询出事件ID为1 又是被A关注用户

结果: A - B和C 这两个用户!用SQL要怎么表达出来!!!
[最优解释]

---------------------------------
-- Author: HEROWANG(让你望见影子的墙)
-- Date : 2012-11-06 12:35:43
-- blog : blog.csdn.net/herowang
---------------------------------

IF OBJECT_ID('[tb]') IS NOT NULL
DROP TABLE [tb]
go
CREATE TABLE [tb] (事件ID INT,用户 VARCHAR(1))
INSERT INTO [tb]
SELECT 1,'A' UNION ALL
SELECT 1,'B' UNION ALL
SELECT 1,'C' UNION ALL
SELECT 1,'D' UNION ALL
SELECT 2,'B' UNION ALL
SELECT 2,'F'

select * from [tb]

IF OBJECT_ID('[tb2]') IS NOT NULL
DROP TABLE [tb2]
go
CREATE TABLE [tb2] (关注 VARCHAR(1),被关注 VARCHAR(1))
INSERT INTO [tb2]
SELECT 'A','B' UNION ALL
SELECT 'A','C' UNION ALL
SELECT 'A','F'



select s.事件id,s.用户 from tb join tb2 on tb.用户=tb2.关注
join tb s on tb2.被关注=s.用户
where s.事件id=1

1B
1C

[其他解释]
select 被关注
from TB1 as a inner join TB2 as b on a.用户=b.关注
where 事件ID=1 and 关注='A'

读书人网 >SQL Server

热点推荐