Laravel select * where id =(select id)

时间:2017-08-29 08:17:07

标签: laravel laravel-query-builder

使用Laravel eloquent如何进行这样的查询:

 select * from branches where user_id =(select id from users where name ='sara' )

4 个答案:

答案 0 :(得分:0)

我会把它分成两个查询。首先获取id,然后获取列表。期待您的模型被呼叫"用户"和"分支"

$ perl -e 'print "\x03"'|xsel
$ scp -t /tmp/somefile.txt
^C
$

此网站可能会帮助您Link

答案 1 :(得分:0)

 $id = Users::select('id')->where('name','sara')->first();
 $barnches = branches::where('id',$id)->get();

这里用户和分支是模型,首先用于1行并获得许多行

答案 2 :(得分:0)

试试这个。

$name = 'sara';

$results = BranchModel::whereIn("user_id", function ($query) use ($name) {
    $query->select("id")
        ->from((new UserModel)->getTable())
        ->where("name", $name);
})->get();

答案 3 :(得分:0)

假设您的user模型中存在Branch关系,您可以使用whereHas

$branches = Branch::whereHas('user', function ($query) {

    $query->where('name', 'sara');

})->get();

希望这有帮助!