- 爱易网页
-
MSSQL教程
- 請教一個復雜的比較問題!该怎么解决
日期:2014-05-19 浏览次数:20537 次
請教一個復雜的比較問題!
現有兩表
表A : 表B :
UserID UKey FKey
1 A A
1 B B
2 A C
2 B
2 C
3 A
3 E
3 C
現需要求出表A中的Ukey全部存在于表B中的Fkey(明確多過FKey也不行)的所有UserID
如上得出結果:
UserID IsExist
1 No
2 Yes
3 No
謝謝!
------解决方案--------------------
create table A(id int,UKey nvarchar(10))
insert into A select 1, 'A '
insert into A select 1, 'B '
insert into A select 2, 'A '
insert into A select 2, 'B '
insert into A select 2, 'C '
insert into A select 3, 'A '
insert into A select 3, 'E '
insert into A select 3, 'C '
create table B(FKey nvarchar(10))
insert into B select 'A '
insert into B select 'B '
insert into B select 'C '
select id,case _count when (select count(*) from b) then 'yes ' else 'no ' end from
(select id,count(*) _count from a,b where a.UKey = b.FKey group by id) as a
------解决方案--------------------
SELECT DISTINCT a.UserID, CASE WHEN b.FKey IS NULL THEN 'No ' ELSE 'Yes ' END AS IsExist
FROM a
LEFT JOIN b ON a.UKey = b.FKey
ORDER BY a.UserID