column reference "group_id" is ambiguous when join

huangapple go评论131阅读模式
英文:

column reference "group_id" is ambiguous when join

问题

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

Groups(分组):group_id(分组ID),group_name(分组名称)

Students(学生):student_id(学生ID),group_id(分组ID),first_name(名),last_name(姓)

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

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

出现了错误提示:“列引用"group_id"不明确”。

英文:

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:

  1. public String findGroupsByStudentsNumber(int expectedStudentsNumber) {
  2. return &quot; SELECT group_id, COUNT(student_id) AS Number_of_students &quot; +
  3. &quot;FROM students &quot; +
  4. &quot;LEFT JOIN groups ON group_id = groups.group_id &quot; +
  5. &quot;GROUP BY group_id &quot; +
  6. &quot;HAVING Number_of_students &lt;=&quot; + expectedStudentsNumber +
  7. &quot; ORDER BY group_id&quot;;
  8. }

there is an error "column reference "group_id" is ambiguous".

答案1

得分: 1

因为两个表格都有一个 group_id 列,所以在查询中不能使用简单的 group_id,而不指定你要引用哪个表格的列。以下是可能的一种写法:

  1. SELECT students.group_id, COUNT(student_id) AS 学生人数
  2. FROM students
  3. LEFT JOIN groups ON students.group_id = groups.group_id
  4. GROUP BY students.group_id
  5. HAVING 学生人数 <= X
  6. ORDER BY students.group_id
英文:

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:

  1. SELECT students.group_id, COUNT(student_id) AS Number_of_students
  2. FROM students
  3. LEFT JOIN groups ON students.group_id = groups.group_id
  4. GROUP BY students.group_id
  5. HAVING Number_of_students &lt;= X
  6. ORDER BY students.group_id

huangapple
  • 本文由 发表于 2020年8月15日 15:05:22
  • 转载请务必保留本文链接:https://go.coder-hub.com/63423492.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定