CodeIgniter 提供了一个多功能的查询生成器,可以帮助在 PHP 中创建复杂的 SQL 查询。此类查询之一是带有子查询排除的 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() 或子查询方法,您可以在 PHP 应用程序中轻松执行带有子查询排除的复杂 SELECT 查询。
以上是如何使用 CodeIgniter 的查询生成器执行带有子查询排除的 SELECT 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!