これは非常に奇妙なクエリであり、どのように進めるのかわかりません。 以下はその表です。以下のテーブルのpostgresクエリを書くには?
id descendentId attr_type attr_value
1 {4} type_a
2 {5} type_a
3 {6} type_a
4 {7,8} type_b
5 {9,10} type_b
6 {11,12} type_b
7 {} type_x TRUE
8 {} type_y "ABC"
9 {} type_x FALSE
10 {} type_y "PQR"
11 {} type_x FALSE
12 {} type_y "XYZ"
クエリの入力、出力が"ABC"
する必要があります。.. 1,2,3
になります。
ロジックは〜1,2,3
からattr_type x
に達するまで子孫をループします。 attr_type x
(7,9,11)に達した場合は、どちらがtrue
かを確認してください。例えば、 7
が真の場合は 8
のtype_y
(チェック行4)の兄弟を取得し、値を返します。
すべてこれは文字列形式です。
'descendentId'のデータ型は何ですか? –
代わりに 'parentId'を格納すれば、これははるかに簡単になります(そういう意味では、自己参照の外部キーを使うことさえできます)。 – pozs