我正在尝试编写一个查询,以了解哪些用户没有注册某些课程。我有两张桌子;课程和用户。这两个字段分别包含“id”和“coursename”以及“username”。使用这两个表,现有系统将用户添加到第三个表(称为EnReleDeLoad用户)。每个用户占一行。例如,如果用户id“1”在4门课程上,则注册的用户如下所示:-----------------------| user_id | course_id |-----------------------| 1 | 1 || 1 | 2 || 1 | 3 || 1 | 4 |-----------------------正如您所看到的,这个表数据不是建立在关系上的,它是在PHP中使用两个表'courses'和'users'生成的。我不知道如何编写一个查询,询问如何发现用户“1”没有注册课程(如果有10门课程的话),但是我们可以看到用户“1”只注册了课程1-4。我应该用喜欢或不喜欢的东西吗?SELECT u.id, c.id, ec.user_id, ec.course_idFROM users u, courses c, enrolled_courses ecWHERE u.id = ec.user_idAND c.id = ec.course_idAND u.id = '1'我试过用!=和但这并不显示我需要什么;用户未注册的课程列表。对不起,如果我含糊其辞,试图让我的头周围!使用MySQL 5,在现有系统中,我不能修改,只查询(暂时)。 最佳答案 SELECT *FROM courses cWHERE c.id NOT IN ( SELECT ec.course_id FROM enrolled_courses ec WHERE ec.user_id = 1 AND ec.course_id IS NOT NULL )关于sql - 在MySQL中找到缺失的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3448544/
10-11 20:16