SQL две таблицы, один результат с дополнениями - PullRequest
1 голос
/ 26 августа 2009

У меня есть две таблицы. Первый Содержит список классов с в основном ClassID и ClassName. Второй Содержит список классов, которые ученик посещает, используя ClassID и PupilID (PupilID относится к третьей таблице).

Можно ли для данного ученика вернуть список ВСЕХ классов, независимо от посещаемости , но указать классы, которые они посещают, используя запрос MS SQL Я читал о SQL CASE и IF и даже о создании и назначении переменных в запросах, но ни в одном из примеров не указано более одной таблицы.

что-то вроде -

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

Ответы [ 4 ]

3 голосов
/ 26 августа 2009

Попробуйте это - извинения Деган за кражу вашего примера и его изменение.

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)
0 голосов
/ 26 августа 2009

А, может быть, счет () за посещаемость?

0 голосов
/ 26 августа 2009
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

0 голосов
/ 26 августа 2009

Звучит как домашнее задание для меня. Попробуйте найти в своей документации LEFT OUTER JOIN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...