本文主要是介绍聊一聊laravel query builder 使用子查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概述:
项目当中经常用到复杂SQL带有子查询,而Laravel的查询构造器并没有直接提供转化成子查询的方法,或者说尽管提供了方法,可是给出来的例子却不太具体,对刚上手的新手来说非常不友好,本文章主要是聊一聊Laravel如何构造各种带有子查询的SQL。
准备:
首先,Laravel一般实现子查询的两种方式:
1、toSql()+getQuery()+raw()方法:
- toSql()方法的作用是为了获取不带有binding 参数的SQL,也就是说带问号的SQL
select * from `rooms` where `rooms`.`project_id` = ?
- getQuery()方法的作用是为了获取binding参数并代替toSql()获得SQL的问号,从而得到完整的SQL
select * from `rooms` where `rooms`.`project_id` = 3
- raw()的作用是直接把SQL套进Laravel的查询构造器中
`$sql = 'select * from `rooms` where `rooms`.
这篇关于聊一聊laravel query builder 使用子查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!