繁体   English   中英

SQL活动记录查询与where空子句连接

[英]SQL active record query join with where empty clause

我正在使用CodeIgniter和Active Record(mysql数据库)来编写一个特殊的查询。 这是工作查询:

$this->db->select('moo_aauth_users.*', false);
    $this->db->select('moo_tasks.id AS task_id, moo_tasks.user_id, moo_tasks.task_status, moo_tasks.task_type, moo_tasks.skill_category, moo_tasks.tasker_hired, moo_tasks.task_city_id, moo_tasks.completed, moo_tasks.hours_spend, moo_tasks.additional_fees, moo_tasks.total_price, moo_tasks.paid, moo_tasks.tasker_asked_id, moo_tasks.tasker_asked_response, moo_tasks.tasker_asked_rate, moo_tasks.title, moo_tasks.description, moo_tasks.expiration_date, moo_tasks.telephone, moo_tasks.zipcode, moo_tasks.address, moo_tasks.created_stamp, moo_tasks.updated_stamp, moo_tasks.assigned_stamp, moo_tasks.completed_stamp, moo_tasks.provider, moo_tasks.country, moo_tasks.task_zone', false);
    $this->db->from('moo_tasks');
    $this->db->join('moo_aauth_users', 'moo_aauth_users.id = moo_tasks.user_id');
    $this->db->where('moo_tasks.task_status', TASK_STATUS_PENDING);

但是现在,我想基于另一个表添加一个特殊的where子句。

我有一个表moo_offers,其中包含与任务相对应的不同报价。 在查询中,我想检查要检索的任务在moo_offers表中是否不包含相应的要约。

范例:

moo_tasks:id 1 / ... moo_tasks:id 2 / ...

moo_offers:task_id 1 / ..

使用查询时,将仅检索moo_tasks.id = 2,而不是id 1,因为它在第二个表中具有要约。

我在查询中尝试了多种想法,但没有成功:

$this->db->join('moo_offers', 'moo_offers.id_task = moo_tasks.id');
$this->db->where('moo_offers.id_tasker NOT IN (SELECT `id_tasker` FROM `moo_offers` WHERE id_task = moo_offers.id_task && id_tasker = '.$filter['tasker_id'].')', NULL, FALSE);

你有主意吗? 谢谢!

 $this->db->select('*');
            $this->db->from('tbl_user');
            $this->db->join('tbl_userinfo', 'tbl_user.user_id = tbl_userinfo.user_id');
            $this->db->where('tbl_user.user_id', $data);
            $query = $this->db->get();
            $result = $query->result();
            return $result;

这就是我所做的,并且有效。


暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM