【问题标题】:Regarding group by inside inner join mysql关于group by inside inner join mysql
【发布时间】:2023-03-12 04:17:01
【问题描述】:

我正在通过 mysql 的内部连接尝试以下组。它说未知的列名。你能帮我解决这个问题吗?我在此查询“SELECT Min(Id) FROM testinbcalls group by lc.DBID”中收到错误,内部连接中说“groupby 中的未知列名 DBID”。如果 groupby 是,是否有另一种方法可以修改此查询不允许。我尝试了 ""SELECT Min(Id) FROM testinbcalls WHERE Id= lc.DBID" 而不是 group by,但它没有用。我不想将检查移到 where 子句,因为我希望在内部连接本身上过滤记录。谁能帮帮我。谢谢

SELECT DISTINCT ic.Id as `Id`,  lc.DBID,
init.Name as Init,
lc.TargetNumber as PhoneNumber, 
CONCAT(us.FirstName,' ',us.Surname) as UserName,
 iout.Name as Outc FROM 
 testcalls ic
 INNER JOIN testinit init on ic.InitId=init.Id
 INNER JOIN users us on ic.UserId=us.Id
 INNER JOIN testinbcalls lc ON ic.Id=lc.CallId AND  lc.DBID IS NOT NULL AND  ic.Id=(**SELECT Min(Id) FROM testinbcalls group by lc.DBID** )
 INNER JOIN (SELECT MIN(Id) Id FROM  testinbcalls  group by lc.DBID) mincallid ON ic.Id=mincallid.Id
 INNER JOIN icomes iout on ic.OutId=iout.Id 
 WHERE ic.AssignedDateTime between '2015-06-08 00:00:00' and '2015-06-09 23:59:59' ORDER BY Id DESC limit 250;

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您将其更改为下面删除表别名lc。这样,您实际上是在引用外部查询表。

    INNER JOIN (SELECT MIN(Id) AS MinId FROM  testinbcalls  group by DBID)
    

    【讨论】:

    • 感谢信息。但我需要检查 ic.Id= MIN(Id) 来限制行
    • 你可以像ic.Id=(SELECT Min(Id) FROM testinbcalls group by DBID )那样做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2015-12-12
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    相关资源
    最近更新 更多