簡體   English   中英

從多個表中選擇mysql

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM