2
我有这个笨以下查询:笨 - 分组where子句
$q = $this->db->where('(message_from="'.$user_id.'" AND message_to="'.$this->auth_model->userdata['user_id'].'")')
->or_where('(message_from="'.$this->auth_model->userdata['user_id'].'" AND message_to="'.$user_id.'")')
->get('messages');
我想写这个查询具有完全的活动记录。
我已经试过这样的事情:
$from_where = array('message_from'=>$user_id, 'message_to'=>$this->auth_model->userdata['user_id']);
$to_where = array('message_from'=>$this->auth_model->userdata['user_id'],'message_to'=>$user_id);
$q = $this->db->where($from_where)
->or_where($to_where)
->get('messages');
die($this->db->last_query());
以上代码生成此查询:
SELECT * FROM (`messages`) WHERE `message_from` = '2' AND `message_to` = '1' OR `message_from` = '1' OR `message_to` = '2'
但是,这是我想生产什么:
SELECT * FROM (`messages`) WHERE (message_from="2" AND message_to="1") OR (message_from="1" AND message_to="2")
有类似的问题here和here,但thosedid不提供真正的解决方案为了我。
这怎么可能,如果不是通过核心库,是否有扩展,它允许编写这样的查询?
感谢,
谢谢,我也考虑过使用子查询,但因为速度问题放弃了它。使用子查询会减慢这个过程吗? – Arda
这个我还没有测试尝试使用子查询,其中只有在条件我还没有测试它的情况下,需要整个查询。如果子查询是相关的,它会减慢进程insted连接会更快地做事 –
查看编辑成功完成 –