2017-02-28 53 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