Laravel 连接(Join)示例
内连接 ( 等值连接 )
$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)示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Laravel如何同时连接多个数据库详解
前言 上文说到thinkphp3.2同时连接两个数据库的文章,然后在总结下laravel同时连接 多个数据库的实例,方便新手学习,db连接以及model连接. 配置.env 文件 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=database_name DB_USERNAME=root DB_PASSWORD=root DB_HOST_TEST=127.0.0.1 DB_PORT_TEST=3306 DB_DATAB
-
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
问题描述:在使用laravel的左联接查询的时候遇到一个问题,查询中带了右表一个筛选条件,导致结果没有返回右表为空的记录. 先附上代码: DB::table('users as u') ->select('u.user_id','c.class') ->leftJoin('class as c','c.user_id','=','u.user_id') ->where('c.status','=',2) ->get(); 解决方案: 1.在mysql的角度上说,直接加where条件
-
Laravel 连接(Join)示例
内连接 ( 等值连接 ) $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`.`aut
-
laravel中Join语法以及使用Join多个条件
在laravel中我们常常会使用join,leftjion和rightjoin进行连表查询,非常的方便,但是我今天遇到一个问题,就是链表查询需要on多个条件,即我要订单的id和发货人都一样,默认的join只支持单个查询,所以我下面总结两种方法: 一.使用原是表达式(不推荐) 原生SQL中我们可以通过如下方法进行 select * from `orders` left join `users` on `orders`.`usename`=`users`.`usename` and `orders`
-
Java使用代理进行网络连接方法示例
需求是这样的: 一.界面上要有这样几种代理类型可以选. 1.HTTP代理 2.Socks代理 3.不使用代理(直连) 4.使用浏览器设置(浏览器也是HTTP.Socks.直连三种). 可参考QQ登录设置里的代理能,其实跟qq的代理功能是一样的. 二.测试使用所填写的代理配置信息是否可连接 三.记录用户上次选择的代理配置,默认使用用户上次使用的代理配置进行网络连接. 程序运行环境是WindowsXP.Windows7.Windows8系统. 使用的技术为Java7,Swing,CXF. 难点: 1
-
SQL语句中不同的连接JOIN及join的用法
为了从两个表中获取数据,我们有时会用JOIN将两个表连接起来.通常有以下几种连接方式: JOIN or INNER JOIN(内连接) : 这两个是相同的,要求两边表同时有对应的数据,返回行,任何一边缺失数据就不显示. LEFT JOIN(左外连接):即使右边的表中没有匹配,也从左表返回所有的行. RIGHT JOIN(右外连接):即使左边的表中没有匹配,也从右表返回所有的行. FULL JOIN(全外连接):只要其中一个表中存在匹配就返回行. 如例,有grade表(课程号sn,分数scro
-
SQL的各种连接Join案例详解
最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN).SQL LEFT JOIN.SQL RIGHT JOIN.SQL FULL JOIN,其中前一种是内连接,后三种是外链接. 假设我们有两张表,Table A是上边的表,Table B是下边的表. Table A id name 1 Google 2 淘宝 3 微博 4 Facebook Table B id address 1 美国 5 中国 3 中国 6 美国 一.INNER JOIN 内连接是最常见的一种连接,只连接
-
Python WebSocket长连接心跳与短连接的示例
安装 pip install websocket-client 先来看一下,长连接调用方式: ws = websocket.WebSocketApp("ws://echo.websocket.org/", on_message = on_message, on_error = on_error, on_close = on_close) ws.on_open = on_open ws.run_forever() 长连接,参数介绍: (1)url: websocket的地址. (2)h
-
PHP开发框架laravel代码提示示例解析
public function getTable() { return $this->table ?? Str::snake(Str::pluralStudly(class_basename($this))); } class_basename 拿到实例对应的类名 pluralStudly 把类名转成复数 snake 把驼峰转化成下划线的格式 这里是默认根据类名加下划线加上复数建议不用改但是如果删除了 复数也可以拿到表名 public function getTable() { return $
-
C++预处理连接的示例详解
目录 前言 定义常量字符串前缀 定义枚举类型 Boost C++库中常常使用预处理连接来定义宏和模板类 Google开源的C++单元测试框架gtest,使用预处理连接技术创建测试用例和测试方法 前言 C++预处理连接(Preprocessor Concatenation)是一种宏定义技巧,用于将两个或多个符号(如变量.字符串等)连接成一个符号.这种技巧可以帮助程序员编写更加灵活和可维护的代码,尤其是在宏定义中使用较为常见. 预处理连接使用“##”操作符来连接两个符号,例如: #define CO
-
MySQL优化之使用连接(join)代替子查询
使用连接(JOIN)来代替子查询(Sub-Queries) MySQL从4.1开始支持SQL的子查询.这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中.例如,我们要将客户基本信息表中没有任何订单的客户删除掉,就可以利用子查询先从销售信息表中将所有发出订单的客户ID取出来,然后将结果传递给主查询,如下所示: DELETE FROM customerinfo WHERE CustomerID NOT in (SELECT CustomerID FR
-
简单学习SQL的各种连接Join
SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段. 最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN).SQL LEFT JOIN.SQL RIGHT JOIN.SQL FULL JOIN,其中前一种是内连接,后三种是外链接. 假设我们有两张表,Table A是左边的表,Table B是右边的表. id name 1 Google 2 淘宝 3 微博 4 Facebook id address 1 美国 5 中国 3 中国 6 美国 IN
随机推荐
- EXT富客户端后台管理系统 初步代码第1/2页
- js中将字符串转换成json的三种方式
- python探索之BaseHTTPServer-实现Web服务器介绍
- JS去掉字符串中所有的逗号
- Redis主从复制问题和扩容问题的解决思路
- IOS 常见的循环引用总结
- jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
- 灵活使用Android中ActionBar和ViewPager切换页面
- PHP添加MySQL数据记录代码
- 一个基于flask的web应用诞生 组织结构调整(7)
- MySQL存储过程例子(包含事务,输出参数,嵌套调用)
- javascript 作用于作用域链的详解
- 用vbs实现重新启动 Internet Explorer
- Microsoft SQL Server 2008安装图解教程(Windows 7)
- jQuery中before()方法用法实例
- 详解js中Number()、parseInt()和parseFloat()的区别
- django用户注册、登录、注销和用户扩展的示例
- Java利用openoffice将doc、docx转为pdf实例代码
- 详解VUE-地区选择器(V-Distpicker)组件使用心得
- 在Ubunt16.04上安装LAMP的方法