当其中一个表使用 group by 时,如何在三个表上进行内部联接。我能够编写此查询,但它在运行时返回错误。那么我应该如何修改我的查询。
var pastDate = DateTime.Now.Date.AddDays(-1);
var query = from l in db.picturelikes
where l.iddatetime > pastDate
group l by l.idpictures into pgroup
let count = pgroup.Count()
orderby count descending
join p in db.picturedetails on pgroup.FirstOrDefault().idpictures equals p.idpictures
join u in db.users on pgroup.FirstOrDefault().iduser equals u.iduser
select new SortedDto
{
IdPictures = pgroup.FirstOrDefault().idpictures,
IdUser = pgroup.FirstOrDefault().iduser,
totalrating = pgroup.Average(l => (float?)l.likenumber) ?? 0, // pl.Where(a => a.likenumber!= null).Average(c => c.likenumber)
sex =u.sex,
username =u.username,
dob = u.dob
};
return query;
这是我使用当前代码得到的异常,
InnerException:{消息:“发生错误。”,ExceptionMessage:“'where子句'中的未知列'Project2.idpictures'”,ExceptionType:“MySql.Data.MySqlClient.MySqlException”,StackTrace:“在MySql.Data。 MySqlClient.MySqlStream.ReadPacket() 在 MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) 在 MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId) 在 MySql.Data.MySqlClient .Driver.NextResult(Int32 statementId, Boolean force) at MySql.Data.MySqlClient.MySqlDataReader.NextResult() 在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior 行为) 在 MySql.Data.Entity.EFMySqlCommand.ExecuteDbDatoiaReader(CommandBehavior 行为) 在 System.Data.Common。DbCommand.ExecuteReader(CommandBehavior 行为)在 System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,CommandBehavior 行为)“}
我的查询合法吗?使用 groupby 时是否可以进行三个内连接。