SQL语句高手请进!跪求帮助!

liulinguang 2011-11-23 03:32:08
现在有两张表:Members表和Virtual表
这两张表中都有身份证字段,Members中是_id,Virtual中是_vid
有这么一个需求:
查出Members表中的所有数据,并且每条数据在输出的时候多显示一列,这一列标识该条数据中的_id与Virtual表中的_vid是否重复,也就是_id的值在表Virtual表中是否同时存在!

...全文
120 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-11-23
  • 打赏
  • 举报
回复
select
*,(case when exists(select 1 from Virtual where [_vid] = t.[_id]) then 1 else 0 end) as flag
from
Members t
我想静静0v0 2011-11-23
  • 打赏
  • 举报
回复
select *,
iscf_id=(case when exists(select 1 from Virtual v where m.id=v.vid) then 1 else 0 end)
from Members m
dawugui 2011-11-23
  • 打赏
  • 举报
回复
[code=SQL]select m.* , '存在' from Members m where exists(select 1 from Virtual n where m._id = n._vid)
union all
select m.* , '不存在' from Members m where not exists(select 1 from Virtual n where m._id = n._vid)

select m.* , '存在' from Members m , Virtual n where m._id = n._vid
union all
select m.* , '不存在' from Members m where not exists(select 1 from Virtual n where m._id = n._vid)

select m.* , '存在' from Members m , Virtual n where m._id = n._vid
union all
select m.* , '不存在' from Members m where _id not in (select _vid from Virtual n)
[/code]
中国风 2011-11-23
  • 打赏
  • 举报
回复
select a._id,max(case when b._vid is null then 0 else 1 end)flg
from members a
left join Virtual as b on a._id=b._vi
group by a._id
dawugui 2011-11-23
  • 打赏
  • 举报
回复
select m.* , '存在' from Members m , Virtual n where m._id = n._vid
union all
select m.* , '不存在' from Members m where not exists(select 1 from Virtual n where m._id = n._vid)

select m.* , '存在' from Members m , Virtual n where m._id = n._vid
union all
select m.* , '不存在' from Members m where _id not in (select _vid from Virtual n)
Felixzhaowenzhong 2011-11-23
  • 打赏
  • 举报
回复
楼上均为正解
-晴天 2011-11-23
  • 打赏
  • 举报
回复
select a.*,(case when b._vid is not null then 1 else 0 end)flg
from members a left join(
select distinct _vid from Virtual)b on a._id=b._vid
快溜 2011-11-23
  • 打赏
  • 举报
回复
select *,(case when exists(select 1 from Virtual where [_vid] = t.[_id]) then 1 else 0 end) flag
from Members t
AcHerat 2011-11-23
  • 打赏
  • 举报
回复

select *,
(case when exists(select 1 from Virtual where [_vid] = t.[_id]) then 1 else 0 end) tFlag
from Members t

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧