Table1とTable2の2つのテーブルがあります。 Table1には、ツリーから除外する必要があるSectionIDがあります。
Table2には、ParentIDとそのChildIDがあります。シナリオがありますparentIDには、別の子の親である子があります。 Table1にあるparentIDのすべてのchildIDをTable2から取得する必要があります。
例Table1には、20000543の親である20000449の親であるSectionId 20000448があります(下の画像を参照)。 2000448のすべてのchildIdとsubchildIdを取得する必要があります。
つまり、結果は2000448(Table1に存在する)にchildIds 20000449,20000450,20000452,20000543,20000544,20000490,20000739,20000740,20000741が必要です。 (ここでは20000449からSubchildIDを取得しています。20000450にchildIDがある場合は、それらも考慮する必要があります。)
CTEを使用しようとしましたが、期待した結果が得られません。
どんな助けも感謝します。
回答 1 件
関連記事
- AndroidXを使用しているときに、ネストされたPreferenceScreenが開かないのはなぜですか?
- Pythonを使用してInfluxdbv2データをクエリできないのはなぜですか?
- メソッドHASH_ADDは、新しい要素をハッシュテーブルに追加しません。 uthashhの使用
- JQUERY、PHP、AJAXを使用してHTMLテーブルにデータを入力する
- TableProviderを使用してテーブルを生成し、ApacheBeamでSQLクエリを実行します
- Oracle SQLで不要な場合にネストされたクエリを使用する利点はありますか?
- Excel VBA:3つの行要素と1つの列要素を使用してピボットテーブルからデータを取得します
- サブクエリでクエリの列を使用するとMySQLエラーが発生する
- このDepartment-Employeeテーブルをクエリして、正確な従業員がいる部門を取得するための最良の方法は何ですか?
- 必要以上のパーティションにアクセスするパーティションテーブルに対してクエリを実行しますか?
SQL Serverを使用していると仮定すると、かなり簡単な再帰のようです。テキストの例を使用せずにテストすることは困難ですが、次のことを試してください。
Table1
からレコードを除外するにはNOT EXISTS
を使用できます 必要に応じて、最後または再帰で(再帰で停止すると、Table1
からのレコードの後の子が無効になります )。編集: サンプルデータと一時テーブルを使用するには:
結果: