mysql - 连接表时 'field list' 中的未知列 xxx(MySQL、MariaDB)

标签 mysql sql

作业问题是:编写一个 SQL 查询来列出所有注册 Web 和数据库计算的学生的姓名。 这里有三个表:enrolments students subjects这 3 个表位于名为 Enrolment 的同一个数据库中。

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

 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';

它给了我错误

ERROR 1054 (42S22): Unknown column 'students.name' in 'field list'

最佳答案

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

 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 - 连接表时 'field list' 中的未知列 xxx(MySQL、MariaDB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55756062/

相关文章:

mysql - 复制条件给出不同的结果集

mysql - 将值除以列的总和

c# - 在存储过程调用中使用默认参数

数据库;一列中的不同 ID?

php - 从数据库中拆分一串文件名

mysql - 从 MAX mysql 关键字获取多条记录?

php - mysql查询: retrieve current date query

mysql - MySQL中嵌套IF的评估

sql - SQL查询不在两个日期之间

sql - NHibernate/EF Linq 中的案例声明