水平合并2个表

时间:2016-02-17 11:42:15

标签: mysql

我有2个表在MySQL数据库中的父母和孩子,我想合并这两个表

enter image description here enter image description here

enter image description here

我想知道如何查询这两个表,以便得到以下结果(查询),这可能吗?如果是的话,我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

这应该有用(有点):

     SELECT * 
     FROM Parents 
     JOIN kids 
     ON parents.id = kids.parent

这会给你一个结果,其中每个孩子都在自己的线上,虽然将重复多个孩子的父母。这可能是一种更好的方式。你的方式是可能的,但这是一个痛苦。你可以在这里找到答案,这是经常被问到的事情。

我还可以建议改变你的结构吗? 我建议为父母而不是父亲和母亲制作一个单一的名称属性,并为每个代表的人提供他们自己的DB条目。然后给每个孩子一个" motherId"和一个" fatherId"而不是组合的父母"属性。也许还试图养成使用" attribueId"用于澄清您的关系的属性。这应该为您提供更清晰的架构,并且更容易使用。因为它是一个耦合的父母"不必要地链接父亲和母亲或强制出现空值的实体。如果你有一个"父母"实体你有更多的自由。它将您的逻辑1更改为1到1。

答案 1 :(得分:0)

简单LEFT JOIN完成工作

 SELECT * 
     FROM Parents 
LEFT JOIN kids 
     ON Kids.parents = parent.id