创建一个 "base" 查询,queryBuilder
Create a "base" query, queryBuilder
我觉得这很容易,但我找不到解决方案。
我必须从许多 table 中创建查询,但其中许多有一个 table 与 table 相同的条件,我有 "big" 想创造一个 "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 个查询,一个用于 table "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;
但不是这样的。
您可以这样做,但您必须 clone
查询,否则您将始终使用相同的构建器实例 class:
$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();
我觉得这很容易,但我找不到解决方案。
我必须从许多 table 中创建查询,但其中许多有一个 table 与 table 相同的条件,我有 "big" 想创造一个 "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 个查询,一个用于 table "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;
但不是这样的。
您可以这样做,但您必须 clone
查询,否则您将始终使用相同的构建器实例 class:
$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();