【发布时间】:2011-11-24 13:28:33
【问题描述】:
我正在尝试查询一个表,但我很难弄清楚查询。
这是我的表格(简化版):
Member
ID | NAME
1 | Frans
2 | Eric
3 | Stephan
4 | Kris
Evenement
ID | NAME
1 | Picknic
2 | Party
3 | Movie
Evenement
ID_EVENEMENT | ID_MEMBER
1 | Kris
1 | Stephan
1 | Eric
2 | Eric
2 | Frans
3 | Frans
3 | Stephan
好的,我要做的查询是这样的:
我想要
select
member_evenement.ID_MEMBER and member_evenement.ID_EVENEMENT
from
member_evenement
where
member.ID on member_evenement.ID_MEMBER
where
member_evenement.ID_MEMBER does not exist
for each member_evenement.ID_EVENEMENT
分开。
我使用的是 sql server 2008 R2
我希望我能很好地解释我的问题。
如果这些是我的基表
Member
ID | NAME
1 | Frans
2 | Eric
3 | Stephan
4 | Kris
Evenement
ID | NAME
1 | Picknic
2 | Party
3 | Movie
Member_Evenement
ID_EVENEMENT | ID_MEMBER
1 | Kris
1 | Stephan
1 | Eric
2 | Eric
2 | Frans
3 | Frans
3 | Stephan
那么我的查询结果应该是这样的:
Evenement
ID_EVENEMENT | ID_MEMBER | MEMBER_NAME | EVENEMENT_NAME
1 | 1 | Frans | Picknic
2 | 3 | Stephan | Party
2 | 4 | Kris | Party
3 | 2 | Eric | Movie
3 | 4 | Kris | Movie
【问题讨论】:
-
你能发布一些你试过的SQL吗?这可以帮助您开始加入:codinghorror.com/blog/2007/10/…,我无法理解您想要什么...您想要来自 Member_evenement 中不存在的成员的所有记录? IF 所以你只需要从 member 到 member_evenement 的左连接,其中 Member_evenement 中的 ID_Member 为空。
-
evenement 表有一个名为 ID_Member 的字段,其中包含 STRING 数据,而不是 1, 2,3 是成员的 ID?好的,我认为您所追求的是所有未参加活动的成员。所以 Frans 不在 member_evenement 1 中,所以 Frans 出现了。但是 Member_Evenement.ID_Member 中的数据是错误的(我希望)
-
是的,修复了,只需刷新:p
-
如果晚上没有会员;你希望所有成员都出席那个晚会吗? jso if 4: Dance and no records in Membmer_Evenement 你想看到所有 4 个成员吗?
-
是的,那样的话我想查看所有成员。
标签: sql sql-server sql-server-2005 sql-server-2008 sql-server-2008-r2