解決在laravel中l(wèi)eftjoin帶條件查詢(xún)沒(méi)有返回右表為NULL的問(wèn)題
問(wèn)題描述:在使用laravel的左聯(lián)接查詢(xún)的時(shí)候遇到一個(gè)問(wèn)題,查詢(xún)中帶了右表一個(gè)篩選條件,導(dǎo)致結(jié)果沒(méi)有返回右表為空的記錄。
先附上代碼:
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的角度上說(shuō),直接加where條件是不行的,會(huì)導(dǎo)致返回結(jié)果不返回class為空記錄,正確是寫(xiě)法應(yīng)該是
select u.user_id,c.class from users u left join class c on u.user_id=c.user_id and c.status=2;
沒(méi)錯(cuò),正確寫(xiě)法是left join .. on .. and 而非 left join .. on .. where
2.那么,在laravel里這個(gè)mysql表達(dá)式的寫(xiě)法是怎樣的,我查閱了多個(gè)手冊(cè)。。。及國(guó)外網(wǎng)友求助問(wèn)答,得到了以下答案
DB::table('users as u')
->select('u.user_id','c.class')
->leftJoin('class as c', function($join)
{
$join->on('c.user_id', '=', 'u.user_id')
->on('c.status', '=', '2');
})
->get();
希望能幫到大家!
以上這篇解決在laravel中l(wèi)eftjoin帶條件查詢(xún)沒(méi)有返回右表為NULL的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
php微信公眾號(hào)開(kāi)發(fā)之翻頁(yè)查詢(xún)
這篇文章主要為大家詳細(xì)介紹了php微信公眾號(hào)開(kāi)發(fā)之翻頁(yè)查詢(xún)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
Laravel框架用戶(hù)登陸身份驗(yàn)證實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Laravel框架用戶(hù)登陸身份驗(yàn)證實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Laravel框架用戶(hù)登陸驗(yàn)證的原理、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-09-09
Laravel 框架路由原理與路由訪(fǎng)問(wèn)實(shí)例分析
這篇文章主要介紹了Laravel 框架路由原理與路由訪(fǎng)問(wèn),結(jié)合實(shí)例形式分析了Laravel 框架路由的基本概念、原理、路由訪(fǎng)問(wèn)方法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
Laravel5.5 手動(dòng)分頁(yè)和自定義分頁(yè)樣式的簡(jiǎn)單實(shí)現(xiàn)
今天小編就為大家分享一篇Laravel5.5 手動(dòng)分頁(yè)和自定義分頁(yè)樣式的簡(jiǎn)單實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
PHP中使用file_get_contents post數(shù)據(jù)代碼例子
這篇文章主要介紹了PHP中使用file_get_contents post數(shù)據(jù)代碼例子,本文直接給出代碼實(shí)例,需要的朋友可以參考下2015-02-02
基于Snoopy的PHP近似完美獲取網(wǎng)站編碼的代碼
基于Snoopy的PHP近似完美獲取網(wǎng)站編碼 用于php爬蟲(chóng),獲取編碼準(zhǔn)確率99.9%, 還有部分不能獲取,求大牛完善2011-10-10

