Laravel 4.2 在不使用 Eloquent 查询生成器的情况下执行查询
Laravel 4.2 execute query without using elequent query builder
我有一个带有子查询的查询..我想写一个明确的 SQL 请求并执行它
查询:
select count(*) as count from
(
SELECT DISTINCT t.article_id FROM
`articles` as a left join `tags` as t
on a.`id` = t.`article_id`
where a.`flag` = 1
) as sub
我试过在不构建查询的情况下执行请求:
DB::connection()->getPdo()->exec( $sql );
但它总是 return 0 !
你为什么不试试 DB::raw('your sql query here')
使用 DB::select 应该可以解决您的问题。
DB::select('select count(*) as count from
(
SELECT DISTINCT t.article_id FROM
`articles` as a left join `tags` as t
on a.`id` = t.`article_id`
where a.`flag` = 1
) as sub');
您可以使用 DB::raw 的子查询。
DB::raw() 方法(不要忘记使用 Illuminate\Support\Facades\DB)允许你 select 任何你想要的并且基本上写原始的 SQL 语句。
DB::select(DB::raw("select count(*) as count from
(
SELECT DISTINCT t.article_id FROM
`articles` as a left join `tags` as t
on a.`id` = t.`article_id`
where a.`flag` = 1
) as sub"));
我有一个带有子查询的查询..我想写一个明确的 SQL 请求并执行它 查询:
select count(*) as count from
(
SELECT DISTINCT t.article_id FROM
`articles` as a left join `tags` as t
on a.`id` = t.`article_id`
where a.`flag` = 1
) as sub
我试过在不构建查询的情况下执行请求:
DB::connection()->getPdo()->exec( $sql );
但它总是 return 0 !
你为什么不试试 DB::raw('your sql query here')
使用 DB::select 应该可以解决您的问题。
DB::select('select count(*) as count from
(
SELECT DISTINCT t.article_id FROM
`articles` as a left join `tags` as t
on a.`id` = t.`article_id`
where a.`flag` = 1
) as sub');
您可以使用 DB::raw 的子查询。 DB::raw() 方法(不要忘记使用 Illuminate\Support\Facades\DB)允许你 select 任何你想要的并且基本上写原始的 SQL 语句。
DB::select(DB::raw("select count(*) as count from
(
SELECT DISTINCT t.article_id FROM
`articles` as a left join `tags` as t
on a.`id` = t.`article_id`
where a.`flag` = 1
) as sub"));