连接表时"字段列表"中的未知列 xxx (MySQL、MariaDB)



家庭作业问题是:编写一个SQL查询以列出所有注册Web和数据库计算的学生的姓名。这里有三个表格:报名情况学生科目 这 3 个表位于名为"注册">的同一数据库中。

我尝试将三个表格组合在一起并打印出整个表格,它有效!

 MariaDB [enrolment]> SELECT *
    -> FROM students st
    -> JOIN enrolments en
    -> ON st.student_id=en.student_id
    -> JOIN subjects su
    -> ON en.subject_code = su.subject_code
    -> WHERE su.name='Web and Database Computing';

但是,我只想打印出所有注册 Web 和数据库计算的学生的姓名,所以我更改了代码:

MariaDB [enrolment]> SELECT name FROM students st
    -> JOIN enrolments en
    -> ON st.student_id=en.student_id
    -> JOIN subjects su
    -> ON en.subject_code = su.subject_code
    -> WHERE su.name='Web and Database Computing';

它给了我错误

错误 1054 (42S22(:"字段列表"中出现未知列"students.name">

您可以将名称替换为 st.name,因为您将别名学生表指定为 st名称替换为 st.name(因为在学生表名称字段中可用以及科目表可用名称,您可以给强制性别名点列名称( 如下...

 SELECT st.name
         FROM students st
         JOIN enrolments en
         ON st.student_id=en.student_id
         JOIN subjects su
         ON en.subject_code = su.subject_code
         WHERE su.name='Web and Database Computing';

尽管MySQL没有抛出歧义错误,但名称在这里似乎是一个模棱两可的列,因为它存在于科目和学生中。所以,你能试试:

st.name而不是name

相关内容

最新更新