比较两个mysql表的id不在第二个列表中

时间:2017-10-29 19:04:32

标签: mysql

我有两名员工和报名学生。

注册学生掌握有关哪些学生注册参加哪些课程的数据。

我需要找出哪些员工没有参加特定课程,我已经尝试过这个问题并且没有运气得到结果。

SELECT e.user_id
     , e.full_name
     , es.student 
  FROM employees e
  LEFT
  JOIN enrolled_students es 
    on e.user_id = es.student
 WHERE e.level = 3 
   and es.pid = 40 
   and es.student is NULL 

获得结果后,我将使用PHP添加尚未添加到课程中的每个学生。这将被设置为每日cron工作。

1 个答案:

答案 0 :(得分:1)

你很亲密。第二秒的条件需要进入ON子句:

SELECT e.user_id, e.full_name, es.student
FROM employees e LEFT OUTER JOIN
     enrolled_students es 
     ON e.user_id = es.student AND es.pid = 40
WHERE e.level = 3 AND es.student IS NULL ;

在您的版本中es.pid IS NULL每当es.student IS NULL。因此,它不能等于40。

我不确定您选择es.student的原因,因为您知道它是NULL