我觉得这很容易,但我找不到解决方案。
我必须从许多表创建查询,但是其中许多表有一个共同的表,该表具有相同的条件,我有“大”的想法创建像“basequery”。这是一个例子。
$baseQuery = DB:: ('table')->where ('condition_in_common', 1);
$bar = $baseQuery->join ('bar', 'table_id', '=', 'table.id')
->where (myOwnConditions);
$foo = $baseQuery->join ('foo', 'table_id', '=', 'table.id')
->where (myOwnConditions);
我期望有2个查询,一个用于表“bar”,另一个用于“foo”
select * from `table` inner join `bar` on `table`.`id` = `table_id` where condition_in_commom = 1 and myOwnConditions;
select * from `table` inner join `foo` on `table`.`id` = `table_id` where condition_in_commom = 1 and myOwnConditions;
但它并不像那样。
答案 0 :(得分:0)
您可以执行此操作,但您必须clone
查询,否则您将始终使用构建器类的相同实例:
$baseQuery = DB::table('table')->where('condition_in_common', 1);
$barQuery = clone $baseQuery;
$fooQuery = clone $fooQuery;
$bar = $barQuery->join('bar', 'table_id', '=', 'table.id')
->where(myOwnConditions)
->get();
$foo = $fooQuery->join('foo', 'table_id', '=', 'table.id')
->where(myOwnConditions)
->get();