我正在查閱特定課程的訪問日誌。即使日誌表中不存在,我也需要顯示所有課程。因此,外連接....但在嘗試(假定)所有的變化LEFT OUTER
,RIGHT OUTER
, INNER
和SQL代碼中的表的位置後,我無法得到我的結果。SQL Server 2005 RIGHT OUTER JOIN不能正常工作
這裏是我運行:
SELECT (a.first_name+' '+a.last_name) instructor,
c.course_id,
COUNT(l.access_date) course_logins,
a.logins system_logins,
MAX(l.access_date) last_course_login,
a.last_login last_system_login
FROM lsn_logs l RIGHT OUTER JOIN courses c ON l.course_id = c.course_id,
accounts a
WHERE l.object_id = 'LOGIN'
AND c.course_type = 'COURSE'
AND c.course_id NOT LIKE '%TEST%'
AND a.account_rights > 2
AND l.user_id = a.username
AND ((a.first_name+' '+a.last_name) = c.instructor)
GROUP BY c.course_id,
a.first_name,
a.last_name,
a.last_login,
a.logins,
c.instructor
ORDER BY a.last_name,
a.first_name,
c.course_id,
course_logins DESC
有什麼事情的WHERE
子句問題,導致我獲得COURSE_ID的是不lsn_logs存在?這是我加入桌子的方式嗎?
再次,簡而言之,我希望所有的course_id無論在lsn_logs中是否存在。
如果你也許會尋找在做左從課程加盟lsn_logs照顧的問題? – Shaded 2010-05-20 14:01:05
您正在使用'lsn_logs'加入帳戶。如果給定課程沒有log_entry,應該返回哪個帳戶? – Quassnoi 2010-05-20 14:04:53
@quassnoi - 課程的講師 – CheeseConQueso 2010-05-20 14:52:41