mysql - mysql多表select

标签 mysql sql select where-clause

我有一个考试数据库,其中包含表格学生、科目和条目。 我正在尝试使用 OCR 考试板生成所有条目的列表,显示带有条目的学生姓名、科目名称和学生参加的考试的条目级别。我知道我需要包含 WHERE 命令,但也知道我做错了......

这是我的代码:

SELECT first_name, last_name, subject_name, level_of_entry
  FROM students, subjects
 WHERE exam_board = 'OCR';

最佳答案

首先,在连接表时,您需要指定什么关系。

其次,避免使用隐式连接语法(逗号分隔)并使用正确的连接语法。

第三,这个帖子不是和:https://stackoverflow.com/questions/35991271/how-do-i-create-a-script-to-show-all-people-taking-the-ocr-exam-mysql一样吗? ?为什么有两个帖子。

无论如何,您需要将这三个表连接在一起:

SELECT students.first_name,students.last_name,subjects.subject_name,subjects.level_of_entry
FROM students
INNER JOIN entries
 ON(students.student_id = entries.student_id)
INNER JOIN subjects
 ON(entries.subject_id = subjects.subject_id)
WHERE subjects.exam_board='OCR';

此外,正如@JoachimIsaksson 提到的,您插入到学生表中是不正确的,将 ` 更改为 ' ,最后在将列与字符串进行比较时使用 '' 就像在我的 where 子句中一样。

关于mysql - mysql多表select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35991237/

相关文章:

用于搜索两个表的Mysql查询结构

mysql - 在这种情况下如何进行多选操作?

mysql - "link"表中是否使用了外键?

php - SQL:具有多个子值的外键

php - 向只有一列的 MySQL 表中插入数据

mysql - 如何在mysql中插入一些公式?

mysql - 使用两个不同数据库时为"Mysql::Error: query: not connected"

java - java中的字符串到oracle日期

sql - 使用 Oracle 9i 将单个文本列列表转换为 2 列列表

html - 控制选择元素中显示的选项数量