答案 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