2014-10-20 76 views
0

使用一张表,我试图运行一个匹配用户标识到课程的查询。 的目标是看到用户ID不在课程, 到目前为止,我可以显示USID的是不是所有的课程,但现在我想显示他们是不是在display row where id is not displayed

SELECT usid, course, COUNT(*) 
FROM COURSE_COMMENTS 
WHERE course in (1,2,3,4,5,6,7,8) 
GROUP BY usid 
HAVING COUNT(*) < 8 
课程

另外,usid和course都不是主要的,所以它们可以多次出现。 有什么想法?

+0

,你能否告诉我们的模式 – 2014-10-20 21:28:57

回答

0

如果你有一个courses表,你可以做这样的事情:

select u.usid, c.course 
from (select distinct course from courses where course in (1,2,3,4,5,6,7,8)) c cross join 
    (select distinct usid from course_comments) u left join 
    course_comments cc 
    on cc.course = c.course and cc.usid = u.usid 
where cc.course is null; 
+0

那粗糙的部分,它们是在同一个表。实际的表格模式比我输入的更令人困惑,但它是我想要做的事情的一般想法。 – amazingacademy 2014-10-20 21:37:15

+0

@amazingacademy。 。 。实际上,您可以从course_comments中选择第一个子查询“select distinct course”。 。 )'。然而,我担心并非所有的课程都必须在该表格中。 – 2014-10-20 21:54:55

+0

我看到你在这里领导,但现在我得到'在字段清单中的usid含糊不清'。另外,我创建了一个课程表,列出了我所有的课程。 – amazingacademy 2014-10-20 21:57:09