Udd*_*ers 2 php mysql activerecord codeigniter
我有这个
SELECT *
FROM categoryTable
WHERE categoryId NOT
IN (
SELECT categoryId
FROM userMenuTable
WHERE cookieId = 'bang4b544417a41b6'
)
Run Code Online (Sandbox Code Playgroud)
但我希望它使用codeigniters活动记录类,所以使用
$this->db
Run Code Online (Sandbox Code Playgroud)
语法,我希望有人能帮助我转换这个?
两种方法:
纯SQL:
$this->db->query('SELECT * FROM categoryTable WHERE categoryId NOT IN (
SELECT categoryId FROM userMenuTable WHERE cookieId = "bang4b544417a41b6"
)');
Run Code Online (Sandbox Code Playgroud)
Active Record + Plain WHERE SQL
$this->db->where('categoryId', 'NOT IN (
SELECT categoryId FROM userMenuTable WHERE cookieId = "bang4b544417a41b6"
)', FALSE);
$this->db->get('categoryTable');
Run Code Online (Sandbox Code Playgroud)
您可以通过在db-> where()中添加FALSE作为第三个参数,将Plain SQL放入WHERE子句中.
遗憾的是,没有什么可以做到这一点,但Active Record仅用于具有连接,订单,限制等的简单查询.