我似乎无法获得我需要的连接/查询!
假设我有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"
...但工作就像我想要它:) 我可以接近,但会有额外的用户没有正确的访问类型。
答案 0 :(得分: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"
答案 1 :(得分:0)
也许:
select * from users u
where u.access='foobar'
and exists (select 1 from user_courses uc where uc.user_id=u.user_id)
干杯
答案 2 :(得分:0)
尝试
...
WHERE ISNULL(u.access, '') = 'foobar'
不确定您的“访问”字段是否为空?