Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较两个mysql表的id不在第二个列表中_Mysql - Fatal编程技术网

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

比较两个mysql表的id不在第二个列表中,mysql,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 =

我有两张桌子,员工和注册学生

注册学生持有关于哪些学生注册了哪些课程的数据

我需要找出哪些员工没有参加特定的课程,我尝试过这个查询,但没有得到结果

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作业。

您很接近了。第二个条件需要在on条款中说明:

在您的版本中,只要es.student为NULL,es.pid就为NULL。因此,它不能等于40


我不确定您为什么选择es.student,因为您知道它是空的。

这没有按预期工作,它返回的结果不是空的。它返回所有结果。我需要弄清楚的是,员工列表中哪些员工目前没有参加每门课程。。。对于高于pid的一个,pid为40@Josh . . . 也许你应该问另一个问题,包括样本数据、期望的结果和你想要完成的逻辑。我相信这个答案解决了你在这个问题中的具体问题。谢谢你,我问了另一个问题。
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 ;