Reputation: 23
I have some troubles with join two tables:
Groups: group_id, group_name
Students: student_id, group_id, first_name, last_name
I wanna count how many students have each group and then output group name, but when i write like this:
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";
}
there is an error "column reference "group_id" is ambiguous".
Upvotes: 0
Views: 1321
Reputation: 1952
Since both tables have a group_id
column, you can't have a plain group_id
in your query without specifying which one you're referring to. This is one way it could look:
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
Upvotes: 1