【发布时间】:2019-04-05 22:44:46
【问题描述】:
我需要使用查询生成器在 Laravel 中复制 SQL 查询,但我不知道如何为同一张表定义多个别名。
我的这个SQL 查询工作正常。
select b.url as url, b.id as id
from item a, item b
where a.type = 'big'
AND a.published = 1
AND b.parent_id = a.id
AND b.published = 1
这是 Laravel 的尝试:
$query = DB::table('item as a, item as b');
$query->where('a.type', '=', 'big');
$query->where('a.published', '=', 1);
$query->where('b.parent_id', '=', 'a.id');
$query->where('b.published', '=', 1);
我也尝试过:
$query = DB::table('item');
$query->fromRaw('item a, item b');
$query->where('a.type', '=', 'big');
$query->where('a.published', '=', 1);
$query->where('b.parent_id', '=', 'a.id');
$query->where('b.published', '=', 1);
我需要使用查询生成器,因为我在接下来的步骤中需要一些条件,这就是为什么我不能使用简单的“hasMany”关系。
更新items 表详细信息:
【问题讨论】:
-
你的意思是'item1 as a'和'item2 as b'。对吗?
-
嗯,同一张表为什么需要两个别名?
-
请把你的表结构。可能需要使用join函数。
标签: php mysql laravel eloquent