2010-11-29 36 views
2

我似乎無法獲得我需要的連接/查詢!根據單個表格加入2個表格

可以說我有3個表(修剪爲這個職位...)

user_courses 
(int) user_id 
(int) course_id 

users 
(int) user_id 
(txt) name 
(txt) access 

courses 
(int) course_id 
(txt) course_desc 

我所試圖做的是選擇選擇所有用戶與正在採取具體課程有一定的接入類型(COURSE_ID )

像...

SELECT * 
FROM user_courses uc 
JOIN users u 
ON uc.user_id = u.user_id 
JOIN courses c 
ON uc.course_id = c.course_id 
WHERE u.access = "foobar" 

...但工作就像我希望它:) 我可以親近,但有沒有correc額外用戶t訪問類型。

+0

有什麼問題?如果某些用戶沒有正確的訪問類型,則需要在db中進行更改。 – hgulyan 2010-11-29 09:11:43

回答

1

使用inner join

SELECT * 
    FROM user_courses uc 
    INNER JOIN users u 
    ON uc.user_id = u.user_id 
    LEFT JOIN courses c 
    ON uc.course_id = c.course_id 
    WHERE u.access = "foobar" 
0

也許是:

select * from users u 
where u.access='foobar' 
    and exists (select 1 from user_courses uc where uc.user_id=u.user_id) 

乾杯

0

嘗試

... 
WHERE ISNULL(u.access, '') = 'foobar' 

不知道你的 '訪問' 欄可以爲空?