[英]Select from more than one table mysql
我有一個包含表學生,科目和條目的考試數據庫。 我正在嘗試通過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所提到的,您插入instudents表的方法不正確,將`更改為',最后在將列與字符串進行比較時,如在我的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 join entries on
students.student_id = entries.student_id
join subjects on
entries.subject_id = subjects.subject_id
WHERE exam_board='OCR';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.