我有这个
SELECT *
FROM categoryTable
WHERE categoryId NOT
IN (
SELECT categoryId
FROM userMenuTable
WHERE cookieId = 'bang4b544417a41b6'
)
但我希望它使用 codeigniters 事件记录类,所以使用
$this->db
语法,我希望有人能帮我转换这个?
最佳答案
两种方法:
纯 SQL:
$this->db->query('SELECT * FROM categoryTable WHERE categoryId NOT IN (
SELECT categoryId FROM userMenuTable WHERE cookieId = "bang4b544417a41b6"
)');
Active Record + Plain WHERE SQL
$this->db->where('categoryId', 'NOT IN (
SELECT categoryId FROM userMenuTable WHERE cookieId = "bang4b544417a41b6"
)', FALSE);
$this->db->get('categoryTable');
您可以通过在 db->where(); 中添加 FALSE 作为第三个参数,将纯 SQL 放入 WHERE 子句中。
很遗憾没有比这更简洁的方法了,但 Active Record 仅适用于具有连接、订单、限制等的简单查询。
关于php - 从原始 sql 更改为 codeigniters 事件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086891/