作业问题是:编写一个 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/