如果父ID存在,则返回SQL父名称,否则返回select查询中的当前名称

时间:2017-05-12 15:07:34

标签: sql

在此先感谢,我有一个包含父ID的表,如果该项与父项绑定。我试图找出一种方法,如果id存在,从父节点中选择名称,如果它不是,则在一个select语句中选择当前名称。

示例:

产品表:

id |Name     |ParentId 
1  | Hello   | null
2  | Goodbye | null
3  | Allo    | 1

我想尝试找回一种方法来取回这样的东西:

id |Name     |ParentId 
1  | Hello   | null
2  | Goodbye | null
3  | Hello   | 1 

再次感谢你。我一直试图让这样的东西工作一段时间。

1 个答案:

答案 0 :(得分:2)

您可以使用自我加入和COALESCE()

SELECT p.id, COALESCE(p2.Name, p.Name), p.ParentId
FROM product p
LEFT JOIN product p2 ON p.ParentId = p2.id