【问题标题】:Displaying the records not present in the second table in MySQL+显示 MySQL 中第二个表中不存在的记录
【发布时间】:2012-07-04 23:53:35
【问题描述】:
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 个表,这个查询完成了它所需要的所有操作,除了我必须包含出勤表中不存在的地址。 例如

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

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

对不起,如果我不够清楚。谢谢

【问题讨论】:

  • 别名“O”代表什么表?
  • 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

标签: mysql sql database mysql++


【解决方案1】:

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

【讨论】:

  • INNER JOIN 将删除未链接到其他表的记录。 LEFT JOIN 似乎更适合您的回答?
  • 我想包含而不是排除。谢谢
  • 我误读了这个问题。 LEFT JOIN 正是应该使用的。
猜你喜欢
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多