查询:
select (exists (select 1 from table1 where url = 'fajne-to-jest')) as in_table1,
(exists (select 1 from table2 where url = 'fajne-to-jest')) as in_table2;
我看不到存在的功能。
我不认为这是可能的,但也许我错了。
所以问题是,是否可以仅使用CodeIgniter的查询构建器创建此复杂查询?
答案 0 :(得分:2)
可能没有像你的例子那样优化。最简单的解决方案是不使用Querybuilder并直接编写语句以便在query()
中使用。
$sql = "select (exists (select 1 from table1 where url = 'fajne-to-jest')) as in_table1,
(exists (select 1 from table2 where url = 'fajne-to-jest')) as in_table2";
$query = $this->db->query($sql);
Querybuilder(QB)是一个很棒的工具,但它通常(可能更经常)完全没有必要。 QB的主要任务是构建查询语句。为什么要执行大量代码来创建易于编写的查询?
在需要有条件地更改查询语句的情况下,QB很棒。例如,添加where子句,更改排序顺序等。