父子id查询

Parent Child over id query

示例数据:

id    parent    child     total  isParent isParentCHildthing
1     J          NA       5       1        1
1     B          NA       -5      0        1
1     J          NA       -10     1        1
1     B          NA        10     0        1
2     X          NA       -1      1        1
2     Y          NA        1      0        1
3     Z          NA        6      0        1
3     W          NA        7      0        1
3     P          NA        -6     1       1
3     R          NA        -7     1       1
3     TT         YY        500    0      0

期望的输出:

id    parent   child total 
1       J       B     5     
1       J       B     -10
2       X       Y      -1
3       P       Z       -6
3       R       W       -7

在 psuedo/english 中,对于给定 id 中的每个 "pair",我想要父级和父级的总值以及与该父级一起使用的 "child" 将由 isparent = 0 and total = total*-1 where isParent = 1

欢迎提出任何建议

根据您的要求,您只需要一个简单的self-join来找到可以与每个parent配对的child。

SELECT p.id, p.parent, c.parent AS child, p.total
FROM MyTable p
LEFT OUTER JOIN MyTable c
 ON c.isParent=0
 AND c.id=p.id
 AND c.Total = p.Total*-1
WHERE p.isParent=1

请注意,如果有 2 个或更多 parent 具有相同的 ID 和相同的总计,则此查询将 "break",但根据您的要求,我假设这不会发生。