簡體   English   中英

PostgreSQL:根據鄰接模型中的子列更新父列

[英]Postgresql: Update parent column based on child column in adjacency model

我有一個表,該表使用鄰接模型對分層數據進行建模。

|----------|--------|--------|--------| | ParentID | ID | Flag | Name | |----------|--------|--------|--------| | 0 | 1 | | x | |----------|--------|--------|--------| | 1 | 2 | | y | |----------|--------|--------|--------| | 2 | 3 | | z | |----------|--------|--------|--------| 我有一個SELECT查詢,如果名稱與某些模式不匹配,它將設置Flag。

SELECT r.id, r.pid, r.name, r.name NOT LIKE ALL(ARRAY[patterns to
match]) AS r.flag FROM TABLE1 AS r

現在如果孩子被舉報了,我也想舉報父母。 我該如何實現?

left self join將使您能夠找到父字段。 如果有多個BOOL_OR則可以使用BOOL_OR來聚合子代。

SELECT r.id, r.pid, r.name,
CASE WHEN r.name NOT LIKE ALL(ARRAY[patterns to match]) THEN True ELSE 
BOOL_OR(child.name NOT LIKE ALL(ARRAY[patterns to match])) END AS r.flag
FROM TABLE1 AS r
LEFT JOIN TABLE1 as child on child.pid=r.id
GROUP BY r.id, r.pid, r.name, r.name NOT LIKE ALL(ARRAY[patterns to match])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM