请考虑这种情况:
我有一个这样的表:
ID City Status
--------------------------------------
1 1 1
2 1 1
3 1 1
4 2 1
5 2 0
6 3 1
7 3 1
8 3 1
9 3 1
10 4 3
11 4 1
12 4 0
我想返回 Citis,所有与该城市相关的记录都有 Status=1
如果其中一条记录有 Status<>1
该城市从结果集中排除。在这种情况下,我想返回城市:1、3。
我如何使用 Sql 查询或 LINQ 查询来执行此操作?
谢谢
最佳答案
像这样的东西应该可以做到。
林克:
var citiesToExclude = context.Table
.Where(t => t.Status != 1)
.Select(t => t.City);
var cities = context.Table
.Where(t => t.Status == 1)
.Where(t => !citiesToExclude.Contains(t.City))
.Select(t => t.City)
.Distinct()
.ToList();
SQL:
SELECT City
FROM [Table]
WHERE Status == 1
AND City NOT IN (SELECT City FROM [Table] WHERE Status <> 1)
GROUP BY City
希望这对您有所帮助。
关于c# - 返回与该项目相关的所有记录都具有特定条件的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11516387/