从多个表中选择mysql

从多个表中选择mysql,mysql,sql,select,where,Mysql,Sql,Select,Where,我有一个考试数据库,里面有学生表、科目表和条目表。 我正试图用OCR考试板制作一份所有条目的列表,显示有条目的学生的姓名、科目名称以及学生参加考试的条目级别。我知道我需要包含WHERE命令,但也知道我做错了 这是我的密码: SELECT first_name, last_name, subject_name, level_of_entry FROM students, subjects WHERE exam_board = 'OCR'; 首先,在连接表时,需要指定什么关系 其次,避免使用

我有一个考试数据库,里面有学生表、科目表和条目表。 我正试图用OCR考试板制作一份所有条目的列表,显示有条目的学生的姓名、科目名称以及学生参加考试的条目级别。我知道我需要包含WHERE命令,但也知道我做错了

这是我的密码:

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

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

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

第三,这个帖子和:?为什么是两个帖子

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

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所提到的,您对students表的插入不正确,请将“改为”,最后在将列与字符串进行比较时,请使用“我的where子句”。首先,在连接表时,您需要指定什么关系

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

第三,这个帖子和:?为什么是两个帖子

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

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所提到的,您对students表的插入是不正确的,请将“改为”,最后,在将列与字符串进行比较时,请使用“如my where子句中所述”。

替换

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

替换

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


你错过了一点,没有。还没找到。这是一个具有代表性的数据集和相应的期望结果。插入学生的内容似乎是通过MS office或类似工具粘贴的。引用的是。。。嗯,不对,你少了一点。还没找到。这是一个具有代表性的数据集和相应的期望结果。插入学生的内容似乎是通过MS office或类似工具粘贴的。引用的是。。。不正确。当您引用WHERE子句中最右边的表时,左连接有点不必要,使其成为内部连接。当您引用WHERE子句中最右边的表时,左连接有点不必要,使其成为内部连接。@user5962847 Sry typo,拼写为subject而不是subjects。尝试now@user5962847Sry拼写错误,拼写主语而不是主语。现在试试