ホームページ > データベース > mysql チュートリアル > SQLite3 で再帰クエリを実行するにはどうすればよいですか?

SQLite3 で再帰クエリを実行するにはどうすればよいですか?

DDD
リリース: 2024-12-31 10:57:10
オリジナル
601 人が閲覧しました

How Can I Perform Recursive Queries in SQLite3?

SQLite3 の再帰クエリ: 総合ガイド

SQLite3 には歴史的に再帰クエリのサポートがありませんでしたが、最近の進歩によりこの機能が導入されました。バージョンでの共通テーブル式 (CTE) の導入3.8.3.

再帰 CTE の使用 (SQLite 3.8.3 以降)

SQLite3 では、再帰 CTE の定義を可能にする WITH ステートメントが提供されるようになりました。再帰 CTE を使用すると、再帰クエリを簡単に実行できます。

WITH RECURSIVE Subparts AS (
    SELECT Part, SuperPart
    FROM Part
    WHERE SuperPart IS NULL
    UNION
    SELECT Part, SuperPart
    FROM Subparts
    JOIN Part
    ON Subparts.SuperPart = Part.Part
)
SELECT *
FROM Subparts;
ログイン後にコピー

以前の SQLite3 バージョンでの再帰クエリ

バージョン 3.8.3 より前の SQLite3 はサポートしていませんでした。再帰的なクエリ。ただし、クライアント コードに再帰を実装することで回避策が存在します。

  1. 初期ステップ: 最初の行とサブパート ID を取得します。
SELECT Part, SuperPart
FROM Part
WHERE SuperPart IS NULL;
ログイン後にコピー
  1. 再帰ステップ: 再帰的に取得しますサブパートの行とサブパート ID。
SELECT Part, SuperPart
FROM Part
WHERE SuperPart IN (sub-part IDs from previous step);
ログイン後にコピー
  1. 停止条件: サブパートが見つからなくなるまで再帰を継続します。

以上がSQLite3 で再帰クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート