SQL两个表,一个带附加功能的结果

时间:2009-08-25 20:38:38

标签: sql-server tsql

我有两张桌子。第一个包含基本上具有ClassID和ClassName的类列表。第二个保存学生使用ClassID和PupilID参加的课程列表(PupilID指的是第三个表格)。

是否可以为给定的学生返回所有课程的列表,无论是否出勤,但是使用MS SQL查询指示他们参加的课程。我已经阅读了有关SQL CASE和IF的内容,甚至还有关于在查询中创建和分配变量的内容,但没有一个示例表明有多个表。

之类的东西 -

|ClassName | Attended
|   1      |    0 
|   2      |    0 
|   3      |    1 
|   4      |    0 

4 个答案:

答案 0 :(得分:3)

试试这个 - 向Degan道歉,窃取你的例子并更改它。

SELECT t.ID, 
       t.Class_ID, 
       t.Pupil_ID, 
       c.Class_ID AS Expr1, 
       c.Class_Name, 
       c.Class_Day, 
       c.Class_OrderView 
FROM Classes AS c
LEFT OUTER JOIN timetable as t 
       ON (c.Class_ID = t.Class_ID) AND (t.Pupil_ID = MyPupil)

答案 1 :(得分:0)

听起来像是家庭作业。尝试在文档中查找LEFT OUTER JOIN。

答案 2 :(得分:0)

也许是一个计数()出席?

答案 3 :(得分:0)

SELECT t.ID, 
       t.Class_ID, 
       t.Pupil_ID, 
       c.Class_ID AS Expr1, 
       c.Class_Name, 
       c.Class_Day, 
       c.Class_OrderView 
FROM timetable AS t
       LEFT OUTER JOIN classes as c 
       ON (t.Class_ID = c.Class_ID) AND (t.Pupil_ID = MyPupil)

问题是在做JOIN时麻烦的WHERE