我有一个简单的父子关系,其中孩子有一个parent_id。还有一个兄弟表通过多态联接表链接孩子和父母。这是视觉效果,它是sqlfiddle。 。
我如何编写查询以获取仅指定孩子的ID或仅指定父母的ID的父子关系中的所有兄弟姐妹?
我尝试了类似的方法,但我只得到了兄弟4,而我试图同时获得了兄弟3和4。
SELECT siblings.id, siblings.NAME
FROM siblings
JOIN polymorphic_joins ON polymorphic_joins.sibling_id = siblings.id
LEFT JOIN children ON polymorphic_joins.f_id = children.id AND polymorphic_joins.f_type='Child'
LEFT JOIN parents ON polymorphic_joins.f_id = parents.id AND polymorphic_joins.f_type='Parent' AND parents.id = children.parent_id
WHERE children.id = 2