Sql 寻找丢失的条目

Sql 寻找丢失的条目,sql,tsql,Sql,Tsql,我有一个数据表,它有4列;用户名、标志、代码和唯一引用 现在,Unique Ref就像一个引用产品的代码。这里有一个清单。每个用户都应该有权访问该唯一引用。因此,如果有100个唯一引用,那么JSMITH04将在该表中出现100次,并且他将为每个用户设置唯一引用 现在让我们假设另一个名为DAVIDMI09的人在表中只有50条记录(这意味着他没有将所有100条唯一的ref分配给他)。我怎样才能找到他没有分配给他的唯一裁判?在TSQL中实现这一点的最佳方法是什么 Username Flag

我有一个数据表,它有4列;用户名、标志、代码和唯一引用

现在,Unique Ref就像一个引用产品的代码。这里有一个清单。每个用户都应该有权访问该唯一引用。因此,如果有100个唯一引用,那么JSMITH04将在该表中出现100次,并且他将为每个用户设置唯一引用

现在让我们假设另一个名为DAVIDMI09的人在表中只有50条记录(这意味着他没有将所有100条唯一的ref分配给他)。我怎样才能找到他没有分配给他的唯一裁判?在TSQL中实现这一点的最佳方法是什么

Username    Flag    Code    Unique Ref
JSMITH04    Z   T   12459/43454

谢谢

只需选择用户没有的,您可以使用,除了:

SELECT DISTINCT [Unique Ref]
FROM TABLE_NAME
EXCEPT
SELECT DISTINCT [Unique Ref]
FROM TABLE_NAME
WHERE USERNAME == 'DAVIDMI09'
或者你可以用不在

SELECT DISTINCT [Unique Ref]
FROM TABLE_NAME
WHERE [Unique Ref] NOT IN (
  SELECT [Unique Ref]
  FROM TABLE_NAME
  WHERE USERNAME == 'DAVIDMI09'
)

为什么每个用户都有一个单独的表?数据库设计似乎有问题。提示:使用适当的软件(MySQL、Oracle、DB2等)和版本(例如,
sql-server-2014
)标记数据库问题很有帮助。语法和功能的差异通常会影响答案。您是否有表存储名为[unique ref]的产品代码?谢谢Hogan!非常感谢。