当前位置: 首页 > 知识库问答 >
问题:

关于group by内部连接mysql

陶永望
2023-03-14

我在MySQL中通过内部连接尝试下面的组。上面写着未知的列名。你能帮我解决这个问题吗。我在内部联接中的查询“select Min(Id)FROM testinbcalls group by lc.DBID”中出现错误,说明“groupby中的unknown column name DBID in the groupby)。如果不允许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;

共有1个答案

蓝侯林
2023-03-14

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

INNER JOIN (SELECT MIN(Id) AS MinId FROM  testinbcalls  group by DBID)
 类似资料:
  • 若要在 Navicat 开始使用你的服务器,你要首先用连接窗口创建一个或多个连接。如果你是一个新手或不肯定服务器如何运作,你可能想看看: MySQL 用户手册 Oracle 数据库文件 PostgreSQL 用户手册 SQLite 用户手册 SQL Server MSDN Library MariaDB 文件 MongoDB 手册 若要创建新连接,请点击 “连接”并选择你的服务器类型。然后,在连接

  • 若要在 Navicat 开始使用你的服务器,你要首先用连接窗口创建一个或多个连接。如果你是一个新手或不肯定服务器如何运作,你可能想看看: MySQL 用户手册 Oracle 数据库文件 PostgreSQL 用户手册 SQLite 用户手册 SQL Server MSDN Library MariaDB 文件 MongoDB 手册 若要创建新连接,请点击 “连接”并选择你的服务器类型。然后,在连接

  • 若要在 Navicat 开始使用你的服务器,你要首先用连接窗口创建一个或多个连接。如果你是一个新手或不肯定服务器如何运作,你可能想看看: MySQL 用户手册 Oracle 数据库文件 PostgreSQL 用户手册 SQLite 用户手册 SQL Server MSDN Library MariaDB 文件 MongoDB 手册 若要创建新连接,请点击 “连接”并选择你的服务器类型。然后,在连接

  • 问题内容: 好的,这是。我有两个表:product和product_sizes 所以基本上我的产品表具有id(主键),名称(产品名称)和size_id(product_sizes中的外键) 我的product_sizes表具有预定值: 在这里,我有一个有效的代码来显示产品表(使用while代码以html格式): 我的问题是我想显示(用html表示)尺寸名称而不是其size_id,类似于以下示例:

  • 我有两个数据帧df1和df2。 i、 e.df1的索引为天,df2的索引为日期时间。我想在索引上执行DF1和DF2的内部连接,这样如果DF2中对应于DF2的时间在DF1中可用,则我们认为内部连接为真,否则为假。 我想获得两个df11和df22作为输出. df11将有共同的日期和相应的列从df1. df22将有共同的日期小时和相应的列从df2. "例如df1中的"2002-08-04"和df2中的"

  • 问题内容: 我在重构的旧系统中有以下SQL语句。这是此问题的缩写视图,只是暂时返回count(*)。 它会生成大量记录并杀死系统,但是有人可以解释其语法吗?可以用其他任何方式表达吗? 表1包含419行 表2包含3374行 Table3包含28182行 编辑: 建议重新格式化 问题答案: 为了提高可读性,我重新构造了查询…从表1的最顶层开始,然后将其绑定到Table3,然后将table3绑定到tab