MySQL 查询失败

标签 mysql database join

这个 MySQL 查询失败了,我只是不明白为什么。感谢您的帮助,如果您需要更多信息,请告诉我。

<小时/>

新查询和新错误

select * 
from 
(select 
classId as `Class ID`, mjla_db.StudentRecordTable2.studentId as `Student ID`, quizId as `Quiz ID`, quizGrade as `Quiz Grade`, mjla_db.StudentTable2.lastName, mjla_db.StudentTable2.firstName 
from mjla_db.StudentRecordTable2, mjla_db.StudentTable2 
where (mjla_db.StudentRecordTable2.studentId=mjla_db.StudentTable2.studentId)) 
as A 
where classId 
in (select mjla_db.ClassTable2.classId 
from mjla_db.ClassTable2 
where mjla_db.ClassTable2.teacherId='T1');

ERROR 1054 (42S22): Unknown column 'classId' in 'IN/ALL/ANY subquery'
<小时/>
select * 
from 
    (select 
        classId as 'Class ID',
        studentId as 'Student ID',
        quizId as 'Quiz ID',
        quizGrade as 'Quiz Grade',
        mjla_db.StudentTable2.lastName,
        mjla_db.StudentTable2.firstName
    from
        mjla_db.StudentRecordTable2,
        mjla_db.StudentTable2
    where
        (mjla_db.StudentRecordTable2.studentId = mjla_db.StudentTable2.studentId)
    ) as A
where
    A.classId in 
        (select
            mjla_db.ClassTable2.classId
        from
            mjla_db.ClassTable2
        where
            mjla_db.ClassTable2.teacherId='T1'
        );
<小时/>
describe StudentRecordTable2;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| classId   | varchar(20) | NO   | MUL | NULL    |       |
| studentId | varchar(20) | NO   | MUL | NULL    |       |
| quizGrade | tinyint(4)  | YES  |     | NULL    |       |
| quizId    | int(11)     | NO   | MUL | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
<小时/>
describe ClassTable2;
+---------------+-------------+------+-----+---------+-------+
| Field         | Type        | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| classId       | varchar(20) | NO   | PRI | NULL    |       |
| className     | varchar(10) | NO   |     | NULL    |       |
| classSection  | varchar(5)  | NO   |     | NULL    |       |
| classSemester | varchar(2)  | NO   |     | NULL    |       |
| classYear     | varchar(4)  | NO   |     | NULL    |       |
| teacherId     | varchar(20) | NO   |     | NULL    |       |
+---------------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
<小时/>
describe StudentTable2;
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| studentId       | varchar(20) | NO   | PRI | NULL    |       |
| lastName        | varchar(45) | NO   |     | NULL    |       |
| firstName       | varchar(45) | NO   |     | NULL    |       |
| studentPassword | varchar(32) | NO   |     | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

最佳答案

我认为您需要使用 bactick/反引号 (`) 字符来引用您的列名称,而不是单引号字符 (')。

此外,您在第一个子查询中将 classId 别名为 Class ID,但随后在外部 where 子句中引用 A.classId。

关于MySQL 查询失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860165/

相关文章:

php - 如何检查 $_GET 的多个值

java - 如何从 Java 备份 mysql 数据库?

mysql - 加入 MYSQL 表的正确方法

python - Pandas 对字典提供的 Dataframe 的特定行求和

mysql - hasMany加入cakephp错误

MySQL - BETWEEN 运算符与 FLOAT(10,6) 的作用类似于 > 和 <,而不是 >= 和 <=

mysql - 使用变量名称创建数据库表

java - JPA 2 上的 List 与 Set - 优点/缺点/便利

php - 在单独的类中配置 MySQL 数据库

database - 在 Oracle 中,删除包含大量数据的表是否安全?