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

联接时列引用"group_id"不明确

骆嘉石
2023-03-14

我在连接两个表时遇到了一些问题:

组:group_id,group_name

学生:学生标识,组标识,名字,姓氏

我想计算每个小组有多少学生,然后输出小组名称,但是当我这样写时:

public String findGroupsByStudentsNumber(int expectedStudentsNumber) {
        return " SELECT group_id, COUNT(student_id) AS Number_of_students " +
                "FROM students " +
                "LEFT JOIN groups ON group_id = groups.group_id " +
                "GROUP BY group_id " +
                "HAVING Number_of_students <=" + expectedStudentsNumber +
                " ORDER BY group_id";
    }

出现错误“列引用”groupid“不明确”。

共有1个答案

洪建茗
2023-03-14

由于两个表都有一个group_id列,因此在查询中不能有一个普通的group_id,而不指定您指的是哪一个。这是它的一种外观:

SELECT students.group_id, COUNT(student_id) AS Number_of_students
FROM students
LEFT JOIN groups ON students.group_id = groups.group_id
GROUP BY students.group_id 
HAVING Number_of_students <= X
ORDER BY students.group_id
 类似资料:
  • 我正在尝试连接两个数据帧。 我创建了别名并根据这篇文章引用它们:Spark Dataframe区分具有重复名称的列 但是,当它点击<code>fillna()s的信息。 但我一直有这个错误: 下面是连接的输出: 有人可以解释为什么这不起作用吗?我不想创建单独的列,因为它们应该在上加入。

  • 这是一个中等复杂的CTE,它根据JSON参数的内容更新许多表。执行此函数时,Postgres抛出一个错误。错误所指的行实际上有一个表名来限定列引用。 我很确定我是对的,因为如果我删除下面标记的行,错误就会消失。 我一直在想这个问题,但我不知道。 为什么此代码存在?

  • 在scala spark中连接不同数据帧时动态选择多列 从上面的链接,我能够让连接表达式工作,但如果列名不同,我们不能使用Seq(columns)而需要动态地连接它。这里的left_ds和right_ds是我想加入的数据流。下面我想要连接列id=acc_id和“acc_no=number”

  • 问题内容: 大家好,我想在使用此查询的联接中使用case语句,但出现错误 错误 ’=’附近的语法不正确。 请帮助我解决此错误。 问题答案: 它应该是,

  • 本文向大家介绍MySQL索引使用说明(单列索引和多列索引),包括了MySQL索引使用说明(单列索引和多列索引)的使用技巧和注意事项,需要的朋友参考一下 1. 单列索引 在性能优化过程中,选择在哪些列上创建索引是最重要的步骤之一。可以考虑使用索引的主要有两种类型的列:在Where子句中出现的列,在join子句中出现的列。请看下面这个查询: 这个查询与前面的查询略有不同,但仍属于简单查询。由于age是

  • 在最新的3.9更新之后,jOOQ似乎正在使用新的Oracle12cRow_limiting_子句进行行限制,而不是使用旧的“rownum”语法。这导致在Oracle 12c中,在具有匹配列名的联接表上出现“ORA-00918:定义不明确的列”。 然而,根据甲骨文的文件[1],新条款, 如果select列表包含名称相同的列,并且您指定了row_limiting_子句,则会发生ORA-00918错误。