SQL Join以使其不存在

时间:2014-09-29 09:37:24

标签: c# sql sql-server join

我在SQL Server DB中有两个表。我在我的c#页面上有一个dropdownmenu,工作人员应该可以选择相关的计划,它应该显示所有没有当前计划设置的用户

表1包含所有用户

表2仅包含有计划的人员。它们在表2中也可以有1-10个不同的plan_id。

我需要一个SQL连接,它返回所有完全没有计划的人或计划ID与从下拉列表中选择的人不匹配

E.G用户可以在表2中存在3个条目,其中包含plan_id的2,3和4。

E.G如果用户从下拉列表中选择计划7,则用户将出现在列表中,因为他们当前没有与所选ID匹配的计划。

表2计划还有一个expiry_date和“active”字段。

如果失效日期是过去的或活动的是“0”

,该计划也应无效

1 个答案:

答案 0 :(得分:1)

在Query中写一个 not ,表2中的用户不具有该计划ID。

假设 表1 - >用户名,用户名 表_2 - > UserId,PlanId

SELECT UserId, Username FROM Table_1 
WHERE UserId NOT IN ( SELECT UserId FROM Table_2 WHERE PlanId = 1 ) 

此查询将返回未与计划1链接的所有用户。

相关问题