如何找到另一个表中不存在的内容?

时间:2012-11-28 23:22:50

标签: mysql sql database phpmyadmin primary-key

我迫切需要一些帮助。

我的问题是:我的数据库中有两个表,tblSubmissiontblStudenttblStudent通过tblSubmission密钥与student_id相关联。 tblStudent中的某些行已被删除,因此未与tblSubmission中的行相关联。

我需要做的是比较两个表格,找到student_id中存在的tblSubmission,但不是tblStudent中的tblSubmission,而是来自app_id的结果必须有一个{{1}}等于358的列。

手动检查这些行不是一个选项,因为它们有数千个。我已经尝试了很多查询,使用我所知道的最多的SQL和类似NOT EXISTS和NOT IN的条款,但无济于事。

1 个答案:

答案 0 :(得分:3)

这将显示tblSubmission中tblStudent中没有相关记录的所有记录:

SELECT tblSubmission.*
FROM tblSubmission left join tblStudent on tblSubmission.student_id = tblStudent.student_id
WHERE tblStudent.student_id is null
      AND app_id = 358

或者:

SELECT tblSubmission.*
FROM tblSubmission
WHERE student_id not in (select student_id from tblStudent)
      AND app_id = 358