【问题标题】:SQL Join to get none existingSQL Join 以获取不存在的
【发布时间】:2014-09-29 09:37:24
【问题描述】:

我在 SQL Server DB 中有两个表。我的 c# 页面上有一个下拉菜单,员工应该能够在其中选择相关计划,并且它应该显示所有没有当前计划设置的用户

表 1 包含所有用户

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

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

例如,一个用户可以存在于表 2 中,其中包含 3 个条目,plan_id 的 2,3 和 4。

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

表 2 计划也有一个 expiry_date 和“活动”字段。

如果到期日期已过或活动为“0”,则该计划也应该无效

【问题讨论】:

标签: c# sql sql-server join


【解决方案1】:

在查询中写一个 not,其中用户在表 2 中不存在具有该计划 ID。

假设 Table_1 -> 用户 ID、用户名 Table_2 -> 用户 ID、计划 ID

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

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

【讨论】:

    猜你喜欢
    • 2021-04-17
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多