2017-02-28 54 views
0

我想弄清楚爲什麼這不起作用。我試圖選擇每個成員的名稱和每個成員註冊的類以及課程名稱。SQL - 在註冊類上列出成員

這是我在一分鐘:

SELECT 
    firstName, lastName, className, trainerName 
FROM 
    member, _class, trainer, enrolment 
WHERE 
    enrolment.memberID = member.memberID 
    AND enrolment.classID = _class.classID; 

任何幫助或建議,將不勝感激,因爲我仍然在學習SQL。

額外的信息:

  • enrolment表中的列entrolmentID,MEMBERID和的classID
  • trainer表中的列trainerID和trainerName
  • member表有MEMBERID,名字,姓氏,年齡,trainerID
  • class表中有classID,className,_day和trainerID
+1

請使用'JOIN's而不是多個的'FROM'子句中的表格 –

+0

您必須製作任何與Left Join鏈接的附加表格 –

+0

include member.trainerID = trainer.trainerID –

回答

1

JOIN聲明的有效語法是:

SELECT FIELD1 
    ,...FIELDN 
FROM TABLE1 T1 
INNER JOIN TABLE2 T2 ON T1.FIELDX = T2.FIELDY 
你的情況

所以,使用:

SELECT firstName 
    ,lastName 
    ,className 
    ,trainerName 
FROM member 
INNER JOIN enrolment ON enrolment.memberID = member.memberID 
INNER JOIN _class ON enrolment.classID = _class.classID 
INNER JOIN trainer ON trainer.trainerID = member.trainerID 
+0

感謝您的幫助 –

+0

你試過嗎?這是你需要的嗎? – apomene

+0

是的很好,謝謝。 –

0

試試這個

SELECT firstname, lastname, classname, trainerName 
FROM member 
INNER JOIN enrollment 
ON enrolment.memberID = member.memberID 
INNER JOIN _class 
ON enrollment.classID = class.classID 
INNER JOIN trainer 
ON trainer.trainerID = member.trainerID