内连接 ( 等值连接 )
$users = Book::join('auth','book.auth_id','auth.id') ->select('book.*','auth.name as auth_name') ->get() ->toArray()
转换成SQL语句 :
select `bl_book`.*, `bl_auth`.`name` as `auth_name` from `bl_book` inner join `bl_auth` on `bl_book`.`auth_id` = `bl_auth`.`id`
左连接
如果你想使⽤左连接 ⽽不是 内连接 可以使⽤ left join ⽤法与join ⼀样
$users = Book::leftJoin('auth','book.auth_id','auth.id') ->select('book.*','auth.name as auth_name') ->get() ->toArray()
交叉连接
要执⾏“交叉连接”可以使⽤ crossJoin⽅法,传递你想要交叉连接的表名到该⽅法即可。交叉连接在第⼀张表和被连接表之间⽣成⼀个笛卡尔积:
$users = User::crossJoin('auth') ->get();
⾼级连接语句
你还可以指定更多的⾼级连接⼦句,传递⼀个闭包到join ⽅法作为第⼆个参数,该闭包将会接收⼀个JoinClause 对象⽤于指定 join ⼦句约束:
users = Book::join('auth',function ($join){ $join->on('book.auth_id','auth.id') ->Where('book.id' , '>','3'); })
->get()
->toArray();
联合(Union)
查询构建器还提供了“联合”两个查询的快捷⽅式,⽐如,你可以先创建⼀个查询,然后使⽤ union ⽅法将其和第⼆个查询进⾏联合:
$user_name = User::select('name');
$users = User::select('password')->union($user_name)->get();
注:unionAll ⽅法也是有效的,并且和 union 使⽤⽅式相同。
以上这篇Laravel 连接(Join)⽰例就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- azee.cn 版权所有 赣ICP备2024042794号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务