CodeIgniter は、PHP での複雑な SQL クエリの作成を容易にする多用途のクエリ ビルダーを提供します。このようなクエリの 1 つは、サブクエリの除外を伴う SELECT クエリです。このクエリを使用すると、次の SQL ステートメントで表現されているように、別のテーブルから特定の行を除外する条件に基づいてテーブルから行を取得できます。
SELECT * FROM certs WHERE id NOT IN (SELECT id_cer FROM revokace);
CodeIgniter のクエリ ビルダーを使用してこのクエリを複製するには、次のようにします。 where() メソッドを活用します。このメソッドは、クエリ条件を表す文字列引数を受け入れます。
$this->db->select('*') ->from('certs') ->where('`id` NOT IN (SELECT `id_cer` FROM `revokace`)', NULL, FALSE);
このコードでは、where() メソッドの ,NULL,FALSE 引数により、CodeIgniter によるクエリのエスケープが防止され、クエリの適切な実行が保証されます。
または、サブクエリ ライブラリを使用してプロセスをさらに簡素化することもできます。
$this->db->select('*') ->from('certs'); $sub = $this->subquery->start_subquery('where_in'); $sub->select('id_cer') ->from('revokace'); $this->subquery->end_subquery('id', FALSE);
CodeIgniter のクエリ ビルダーとその where() メソッドまたはサブクエリ メソッドを利用することで、複雑な SELECT クエリを次のように簡単に実行できます。 PHP アプリケーションでのサブクエリの除外。
以上がCodeIgniter のクエリ ビルダーを使用してサブクエリを除外して SELECT クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。