查询以从2个表中选择(内部信息)

NoobCube

会员
已加入
2014年3月2日
留言内容
12
编程经验
Beginner
你好!

我什至不知道该在Google搜索什么,所以我希望这里有人可以提供帮助。

我想做的是:
我有两个表: 客户群日志记录
他们都有 ID 相同的领域

客户群 表格中列出了所有客户及其详细信息,还有一个名为 活跃 确定是否应显示客户端。
日志记录 表中列出了一些客户 ID ,但不是所有Clients表ID的全部,因此,如果Clients表有10个客户端,则Log表中可以包含1-10个Clients ID 。

我想执行某种JOIN或将要从“客户端”表中选择所有客户端并将其IsActive状态设置为T / F的操作,这取决于它们的ID是否在日志表中。

例如:

客户表:
ID 名称活跃
1真正
2布鲁斯真正
3约翰真正
4鲍勃真正
5亚瑟
6插口

日志表:
ID
1
3
5
6

查询结果将是:
ID 名称活跃
1真正
2布鲁斯
3约翰真正
4鲍勃
5亚瑟真正
6插口真正


日志表中存在1个
日志表中不存在2,因此将其设置为False
日志表中存在3个
日志表中不存在4,因此将其设置为False
日志表中存在5,因此即使它为False也变为True
日志表中存在6,因此即使它为False也变为True

它将返回Clients表,但是IsActive值将更改,具体取决于该ID是否存在于Log表中。
您可以看到由于客户端ID在“日志”表中而更改的红色值。
结果表IsActive行与Clients表IsActive无关,它将由查询创建。

我正在使用SQL CE,C#4.5

请帮忙!我不知道如何做:confusion:

谢谢!
 

NoobCube

会员
已加入
2014年3月2日
留言内容
12
编程经验
Beginner
在C#IRC频道中询问后,我得到了答案:

C#:
[COLOR=#0000ff]SELECT[/COLOR] ID ,[COLOR=#0000ff] CASE WHEN EXISTS[/COLOR] ([COLOR=#0000ff]SELECT[/COLOR] ID  [COLOR=#0000ff]FROM[/COLOR] 日志记录 [COLOR=#0000ff]AS[/COLOR] b [COLOR=#0000ff]WHERE[/COLOR] b.ID = a.ID) [COLOR=#0000ff]THEN[/COLOR] 1 [COLOR=#0000ff]ELSE[/COLOR] 0 [COLOR=#0000ff]END[/COLOR] [COLOR=#0000ff]AS[/COLOR] 活跃 [COLOR=#0000ff]FROM [/COLOR]Clients [COLOR=#0000ff]AS [/COLOR]a
 
最佳 底部