【问题标题】:How can I join 3 separate tables and get the user?如何加入 3 个单独的表并获取用户?
【发布时间】:2020-10-17 00:10:36
【问题描述】:

我有 3 个表如下:

学生:

id:(PRIMARY KEY AUTO_INCREMENT),
name:(varchar(100))

注意:

   id :(PRIMARY KEY AUTO_INCREMENT)
   Des :varchar(100) 

通知状态:

   id:( PRIMARY KEY AUTO_INCREMENT )
   noticeId:varchar(100) |  FK  
   studentId:varchar(100) |  FK

如果有学生查看任何通知,则会推送NoticeStatus 表中具有用户ID 和noticeId 的行。 如何让所有没有检查任何通知的学生以及如何在 MySQL 或 TypeOrm 中做到这一点?

【问题讨论】:

  • 为什么要加入 3 个表,只有 2 个看起来有用。?
  • 是的。我只需要没有查看通知的学生姓名

标签: mysql sql nestjs typeorm


【解决方案1】:

在SQL中,可以使用not exists:

select s.*
from students s
where not exists (select 1 from noticeStatus ns where ns.studentId = s.id)

这显示了所有在noticeStatus 中没有条目的学生。

【讨论】:

  • 感谢@GMB。只是另一个 Quary。如果我有另一个名为 User 的表存储用户信息,而学生表只有 userId 作为 FK。我如何从 noticestatus 表中通过 userID 获取相同的信息。
猜你喜欢
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-11
  • 2021-05-08
  • 1970-01-01
  • 2017-07-05
  • 2021-03-15
相关资源
最近更新 更多