连接时列引用“ group_id”不明确

问题描述

我在连接两个表时遇到了一些麻烦:

组:group_id,group_name

学生:student_id,group_id,first_name,last_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";
    }

存在错误“列引用“ group_id”不明确”。

解决方法

由于两个表都有一个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