问一个SQL语句
两张表中没有外键约束
表1——User
UserName
张三
李四
王五
表2——GoodUser
UserName
张三
王五
要求最后的结果
UserName IsGood
张三 是
李四
王五 是
IsGood字段就是要显示在GoodUser中是否有这个用户
问题点数:20、回复次数:4Top
1 楼batbat(不只火五)回复于 2004-12-02 02:20:40 得分 8
select username,
case
when exists(select * from GoodUser where GoodUser.Username = user.Username) then '是'
else ''
end as isGood
from user
这个应该能行Top
2 楼fengyinglois(风影)回复于 2004-12-02 08:22:27 得分 8
--实例
--建表
create table #User(username char(10))
create table #goodUser(username char(10))
--填数
insert into #User(username)values('张三')
insert into #User(username)values('李四')
insert into #User(username)values('王五')
insert into #goodUser(username)values('张三')
insert into #goodUser(username)values('王五')
--查询
select t1.username,
case when t2.username <>'' then '是' else '' end as 'Is Good'
from #user t1 left join #gooduser t2
on t1.username=t2.username
--结果
username Is Good
---------- -------
张三 是
李四
王五 是
(所影响的行数为 3 行)Top
3 楼MrRedSnow(慕容红雪)回复于 2004-12-02 09:17:42 得分 0
想到一个小问题,如果在GoodUser表中存在一条User表中不存在的纪录,如何取得两个表内容的并集呢?当然,我想这已经超出了楼主命题范围。Top
4 楼zhangzs8896(小二)回复于 2004-12-02 09:38:00 得分 4
1,2楼ok!
3楼说的是一种情况,但是看表名就知道gooduser是user的子集,所以不应该会出现你说的情况Top




