laravel高級(jí)的Join語(yǔ)法詳解以及使用Join多個(gè)條件
在laravel中我們常常會(huì)使用join,leftjion和rightjoin進(jìn)行連表查詢(xún),非常的方便,但是我今天遇到一個(gè)問(wèn)題,就是鏈表查詢(xún)需要on多個(gè)條件,即我要訂單的id和發(fā)貨人都一樣,默認(rèn)的join只支持單個(gè)查詢(xún),所以我下面總結(jié)兩種方法:
一、使用原是表達(dá)式(不推薦)
原生SQL中我們可以通過(guò)如下方法進(jìn)行
select * from `orders` left join `users` on `orders`.`usename`=`users`.`usename` and `orders`.`platform`=`users`.`platform` where `orders`.`order_status` = 2
那么結(jié)合laravel,我們可以所以
DB::select('select * from `orders` left join `users` on `orders`.`usename`=`users`.`usename` and `orders`.`platform`=`users`.`platform` where `orders`.`order_status` = :id', ['id' => 1]);
二、使用高級(jí)的Join語(yǔ)法(推薦使用)
我們只需要所以如下代碼即可完成我們的Join多個(gè)條件
DB::table('users') ->join('contacts', function ($join) { $join->on('users.id', '=','contacts.user_id')->on('users.usename', '=','contacts.usename'); }) ->get();
如果你想要了解更多,我們可以看一下文檔中的描述:
讓我們以傳入一個(gè)閉包當(dāng)作 join 方法的第二參數(shù)來(lái)作為開(kāi)始。此閉包會(huì)接收 JoinClause 對(duì)象,讓你可以在 join 子句上指定約束:
DB::table('users') ->join('contacts', function ($join) { $join->on('users.id', '=','contacts.user_id')->orOn(...); }) ->get();
若你想要在連接中使用「where」風(fēng)格的子句,則可以在連接中使用 where 和 orWhere 方法。這些方法會(huì)比較字段和一個(gè)值,來(lái)代替兩個(gè)字段的比較:
DB::table('users') ->join('contacts', function ($join) { $join->on('users.id', '=', 'contacts.user_id') ->where('contacts.user_id', '>', 5); }) ->get();
以上這篇laravel高級(jí)的Join語(yǔ)法詳解以及使用Join多個(gè)條件就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
PHP 計(jì)算兩個(gè)時(shí)間段之間交集的天數(shù)示例
今天小編就為大家分享一篇PHP 計(jì)算兩個(gè)時(shí)間段之間交集的天數(shù)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10ThinkPHP開(kāi)發(fā)--使用七牛云儲(chǔ)存
本文是thinkphp開(kāi)發(fā)系列文章中關(guān)于使用七牛云儲(chǔ)存的方法和具體實(shí)例,非常的簡(jiǎn)單,有需要的小伙伴可以參考下2017-09-09thinkPHP簡(jiǎn)單調(diào)用函數(shù)與類(lèi)庫(kù)的方法
這篇文章主要介紹了thinkPHP簡(jiǎn)單調(diào)用函數(shù)與類(lèi)庫(kù)的方法,簡(jiǎn)單講述了thinkPHP公共函數(shù)庫(kù)的文件位置并結(jié)合實(shí)例分析了類(lèi)庫(kù)的調(diào)用方法,需要的朋友可以參考下2017-03-03PHP網(wǎng)頁(yè)游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(四)
這篇文章主要介紹了PHP網(wǎng)頁(yè)游戲Xnova(ogame)源碼解讀的用戶(hù)登錄頁(yè)面,需要的朋友可以參考下2014-06-06如何使用php腳本給html中引用的js和css路徑打上版本號(hào)
這篇文章主要介紹了如何使用php腳本給html中引用的js和css路徑打上版本號(hào),打版本號(hào)有個(gè)好處就是可以解決外部應(yīng)用文件實(shí)時(shí)更新問(wèn)題,喜歡的朋友一起看看全文吧2015-11-11CodeIgniter實(shí)現(xiàn)從網(wǎng)站抓取圖片并自動(dòng)下載到文件夾里的方法
這篇文章主要介紹了CodeIgniter實(shí)現(xiàn)從網(wǎng)站抓取圖片并自動(dòng)下載到文件夾里的方法,實(shí)例分析了CodeIgniter網(wǎng)頁(yè)圖片操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06