我有两张桌子

1.申请人表(身份证,姓名)

2.帖子表(id,post_name,applicant_id)

如果我进行内部联接,我将得到正在发布职位的申请人(从applicants内部联接posts接通postsapplicant_id = applicantsid的SELECT COUNT(*))。

现在,我需要做些什么来吸引没有职位的申请人。

最佳答案

您需要一个outer joinHAVING子句

SELECT
      a.id
    , COUNT(p.applicant_id) post_count
FROM applicants a
      LEFT OUTER JOIN posts p
                  ON a.id = p.applicant_id
GROUP BY
      a.id
HAVING COUNT(p.applicant_id) = 0


实际上,您不需要分组依据,这就足够了:

SELECT
      a.id
FROM applicants a
      LEFT OUTER JOIN posts p
                  ON a.id = p.applicant_id
WHERE p.applicant_id IS NULL

09-29 20:25