php - 将 mysql where_in 查询更改为 codeigniter 事件记录

标签 php mysql codeigniter activerecord

是否可以纠正此查询

`$sql = '
    SELECT *
    FROM employers
    LEFT JOIN jobwall ON jobwall.employers_employer_id = employers.employer_id
    WHERE employers.employer_id
    IN (SELECT employers_employer_id FROM jobwall)
';

$this->db->query($sql);`

作为 codeigniter 中的事件记录

最佳答案

我同意 Joe Stefanelli 的观点,对于普通连接来说 LEFT JOIN 和 WHERE IN 子查询是不必要的。以下内容应该满足您的要求:

$this->db->join('jobwall'
    , 'jobwall.employers_employer_id = employers.employer_id');
$this->db->get('employers');

仅当您想要获取所有雇主(无论他们是否在 jobwall 表中)时,才应使用 LEFT JOIN。

关于php - 将 mysql where_in 查询更改为 codeigniter 事件记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4599103/

相关文章:

mysql - LOAD DATA LOCAL INFILE 失去连接,如何解决超时问题?

php - 在 csv_from_result 方法中为我们将 mysql 时间戳转换为 codeigniter 查询对象中的日期

php - jQuery + php 文件上传。传递多个参数

php - 在 PHP 中,当我们使用 mysql_query 时,内存中会发生什么

php - PHP 上的 Google Calendar API v3 域范围委托(delegate)服务帐户

MySQL 基于 IF 条件从两个表之一进行 JOIN

PHP 自动加载 MVC

mysql - mysql优化器中的奇怪查询

php - 如何使用 CodeIgniter 在 View 中显示原始计数

php - 关于优化连接查询的建议