【发布时间】:2018-02-06 14:38:15
【问题描述】:
使用 Laravel eloquent 如何进行这样的查询:
select * from branches where user_id =(select id from users where name ='sara' )
【问题讨论】:
-
分支和用户之间的关系建立了吗?
标签: laravel laravel-query-builder
使用 Laravel eloquent 如何进行这样的查询:
select * from branches where user_id =(select id from users where name ='sara' )
【问题讨论】:
标签: laravel laravel-query-builder
我会把它分成两个查询。首先获取 id,然后获取列表。期望您的模型被称为“用户”和“分支”
$user = User::where('name', 'sara');
$id = $user->id;
$branches = Branch::where('id', $id);
本站可以帮到你Link
【讨论】:
$id = Users::select('id')->where('name','sara')->first();
$barnches = branches::where('id',$id)->get();
这里的用户和分支是模型,首先是使用 1 行并获取多行
【讨论】:
试试这个。
$name = 'sara';
$results = BranchModel::whereIn("user_id", function ($query) use ($name) {
$query->select("id")
->from((new UserModel)->getTable())
->where("name", $name);
})->get();
【讨论】:
假设您的Branch 模型中有user 关系,您可以使用whereHas:
$branches = Branch::whereHas('user', function ($query) {
$query->where('name', 'sara');
})->get();
希望这会有所帮助!
【讨论】:
你可以使用这个:
$users = User::whereName("sara")->get()->pluck('id');
Branch::whereIn('user_id',$users)->get();
【讨论】: