我有一个名为"child_parent"的表,它列出了孩子及其父母的ID,比如说,指的是名为"person"的表。子-父对是唯一的,一个孩子的父母不能超过两个。
child parent
3 1
3 2
4 1
7 8
我想要一个"其他"父级(称之为"ChildOfpID_OtherParent")的表,该表包含所有父级ID(pID)等于1的子级,如果没有列出其他父级,则为NULL。所以如果pID=1,我想要:
child_of_pID other_parent
3 2
4 NULL
我很难弄清楚如何生成这样一个表。
此查询将返回示例的正确结果
SELECT p1.child as child_of_pID, p2.parent as other_parent
FROM child_parent AS p1
LEFT JOIN child_parent p2
ON p1.parent <> p2.parent AND p1.child = p2.child
WHERE p1.parent = 1;
这很好-我必须更多地研究别名。我认为缺少了一个AS,并将其推广到pID(在上面的例子中=1),我会写:
SELECT p1.child as child_of_pID, p2.parent as other_parent
FROM child_parent AS p1
LEFT JOIN child_parent AS p2
ON p1.parent <> p2.parent AND p1.child = p2.child
WHERE p1.parent = pID;