显示MySQL中第二个表中不存在的记录

时间:2012-07-04 23:53:35

标签: mysql sql database mysql++

SELECT C.COURSE_ID, TITLE, A.STUDENT_ID, COMPANY_ID, AD.ADDRESS
FROM COURSE C, STUDENT S, ADDRESS AD, ATTENDANCE A
WHERE C.COURSE_ID = AD.COURSE_ID
AND AD.ADDRESS = A.ADDRESS
AND A.STUDENT_ID = S.STUDENT_ID
AND COMPANY_ID IS NOT NULL;

我有4个表,这个查询完成了所有需要,除了我必须包括Attendance表中没有的ADDRESS。 例如

ADDRESS TABLe          ATTENDANCE table
Address                  Address
  a                         a
  b                         b
  c
  d

所以我想要最终结果显示:

COURSE ID    TITLE   STUDENT_ID   COMPANT_ID   ADDRESS
   BLA        BLA      BLA         BLA           a
   BLA        BLA      BLA         BLA           b
   BLA        BLA      BLA         BLA           c
   BLA        BLA      BLA         BLA           d

虽然上面的查询显示了相同的结果,但不包括“地址”列中的c和d。

很抱歉,如果我不够清楚的话。谢谢

1 个答案:

答案 0 :(得分:2)

如果您更改查询以使用LEFT JOIN加入ATTENDANCE表格,则排除 ADDRESS中所有不存在的记录表