C# 查询帮助:实体框架
我的数据库中有此表:C# 查询帮助:实体框架,c#,linq,entity-framework,C#,Linq,Entity Framework,我的数据库中有此表: ID userID MovieID Rank 1 1 1 9 2 1 2 9 3 1 3 9 4 2 1 9 5 2 2 10 我想查询它,以获得两个用户之间的相互电影,他们的评级相同 例如,在这种情况下,用户1和用户2都用“9”对movieID=1进行评级 所以我只想得到电
ID userID MovieID Rank
1 1 1 9
2 1 2 9
3 1 3 9
4 2 1 9
5 2 2 10
我想查询它,以获得两个用户之间的相互电影,他们的评级相同
例如,在这种情况下,用户1和用户2都用“9”对movieID=1进行评级
所以我只想得到电影1的结果
-更新-
所以我想出了这个感谢@RJ1990
SELECT MovieID
FROM LoverMovie
WHERE (LoverID = 1) OR
(LoverID = 2)
GROUP BY MovieID
HAVING (COUNT(*) > 1) AND (ABS(MAX(Rank) - MIN(Rank)) < 3)
这种查询可以用EF DbContext编写吗?不清楚您尝试了什么,遇到了什么问题。但此查询返回具有多个投票权的电影:
from m in db.Movies // assume you have Movies table
join mr in db.MovieRates
on m.ID equals mr.MovieID into g // and MovieRates table
where g.Count() > 1
select m
或者,如果已定义导航属性:
db.Movies.Where(m => m.Rates.Count() > 1)
如果您还需要验证费率是否来自不同的用户,则使用.Selectx=>x.UserID.Distinct.Count>1代替.Count>1-此条件从费率中选择不同的用户ID。方法:
从下面的查询中,您将获得具有多个类似评级的特定电影的MovieID、Rate和Rate_计数
试过什么吗?是的。事情进展不太顺利。谢谢。在回答之前先阅读问题。他需要实体框架的LINQ查询。SQL对他没有帮助。这对我也有帮助,我现在正试图弄清楚背后的逻辑,谢谢。@KobiBurnley行与行之间有实体框架吗?没有。LINQ查询会有帮助。但是,这可以帮助我理解LINQ查询。我还想有一种方法可以在EF中使用常规sql查询,我希望我没有错。@KobiBurnley和已经编写的LINQ查询有什么问题?
select MovieID,Rank,Count(*) Rate_Count
from your_table
group by MovieID,Rank
having Count(*) > 1