我有三个表,其中包含 Parent、Child、M​​arks

Posted

技术标签:

【中文标题】我有三个表,其中包含 Parent、Child、M​​arks【英文标题】:I have three tables which contains Parent,Child,Marks 【发布时间】:2017-08-16 14:58:26 【问题描述】:

我想使用联接查询合并父子表并使用联合查询添加标记表,可以这样做吗?

在父表中:

Id int(primarykey),
Firstname varchar(50),
Email  varchar(50)

在子表中:

Mid int(primarykey),
Mark1 int,
Mark2 int,
Id int(foreignkey)

在标记表中:

Uid int(primarykey),
Mark3 int,
Id int(foreignkey)

最后的结果应该是这样的:

Id Firstname Mark1 Mark2 Mark3
-- --------- ----- ----- -----
2   John      59    78    89

提前致谢。

【问题讨论】:

Child.Id 和 Mark.Id 是否与 Parent.Id 相关?您能否提供 Parent、Child 和 Mark 的示例数据?你不能使用 UNION 来得到你想要的。 UNION 将记录从具有相同模式的两个集合中追加到结果集中。您需要加入 Mark 表。 【参考方案1】:

似乎这只需要在表格之间使用相当简单的join

select p.Id
      ,p.FirstName
      ,c.Mark1
      ,c.Mark2
      ,m.Mark3
from ParentTable as p
  join ChildTable as c
    on p.Id = c.Id
  join MarkTable as m
    on p.Id = m.Id;

【讨论】:

以上是关于我有三个表,其中包含 Parent、Child、M​​arks的主要内容,如果未能解决你的问题,请参考以下文章

从 Prisma2 中的辅助表中获取数据

backref关系中的对称性与事件侦听器无法正常工作

SQL:如何找到父母有给定ID的孩子的所有父母

错误 C2504 循环包含

属于Parent模型的三个模型的Laravel 8关系

Swift Core 数据无法第二次存储数据:Cocoa 错误 1560