欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決在laravel中l(wèi)eftjoin帶條件查詢沒有返回右表為NULL的問題

 更新時(shí)間:2019年10月15日 09:39:47   作者:php_girl  
今天小編就為大家分享一篇解決在laravel中l(wèi)eftjoin帶條件查詢沒有返回右表為NULL的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題描述:在使用laravel的左聯(lián)接查詢的時(shí)候遇到一個(gè)問題,查詢中帶了右表一個(gè)篩選條件,導(dǎo)致結(jié)果沒有返回右表為空的記錄。

先附上代碼:

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條件是不行的,會導(dǎo)致返回結(jié)果不返回class為空記錄,正確是寫法應(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;

沒錯(cuò),正確寫法是left join .. on .. and 而非 left join .. on .. where

2.那么,在laravel里這個(gè)mysql表達(dá)式的寫法是怎樣的,我查閱了多個(gè)手冊。。。及國外網(wǎng)友求助問答,得到了以下答案

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帶條件查詢沒有返回右表為NULL的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論