这个问题在这里已经有答案了:
codeigniter活动记录多个“where”和“or”语句(2个答案)
两年前关门了。
代码点火器:
$this->db->select("item.*");
$this->db->from("items");
$this->db->where_not_in('item.ID', $Not);
$this->db->where_in('item_sub_category.Sub_category', $Sub_category);
$this->db->or_where_in('item_category.Category',$Category, NULL, FALSE);
$this->db->limit(4);
return $this->db->get()->result_array();
输出:
SELECT `item`.*
FROM `item`
LEFT JOIN `item_category`
ON `item_category`.`item` = `item`.`id`
LEFT JOIN `item_sub_category`
ON `item_sub_category`.`item` = `item`.`id`
WHERE `item`.`id` NOT IN( '12' )
AND `item_sub_category`.`sub_category` IN( '65', '66', '67', '68' )
OR `item_category`.`category` IN( '35', '36' )
LIMIT 4
预期产量:
SELECT `item`.*
FROM `item`
LEFT JOIN `item_category`
ON `item_category`.`item` = `item`.`id`
LEFT JOIN `item_sub_category`
ON `item_sub_category`.`item` = `item`.`id`
WHERE `item`.`id` NOT IN( '12' )
AND (`item_sub_category`.`sub_category` IN( '65', '66', '67', '68' )
OR `item_category`.`category` IN( '35', '36' ))
LIMIT 4
有谁能告诉我如何使用活动记录来实现预期的输出?
3条答案
按热度按时间4zcjmb1e1#
您没有输入整个查询—但是如果是与您相关的where条件—您可以执行以下操作:
t3irkdon2#
你只需要加上
join
在活动记录中。就像下面一样。c9x0cxw03#
//试试这个。。