Laravel:加入2加入OR order with null

时间:2017-05-16 00:39:26

标签: php mysql sql join laravel-5

如何加入:

$query->leftJoin('tbs_111', 'tbs_111.111_id', '=',  'tbs_222.222_id');
$query->where('tbs_111.111_id', null);
$query->select('tbs_222.*');

而且:

$query->join('tbs_111', 'tbs_111.111_id', '=',  'tbs_222.222_id');
$query->orderBy('tbs_111.111_id', $order);
$query->select('tbs_222.*');

或者,如果         $ query-> where('tbs_111.fine_id',null);

返回任何号码。 Exm 1.并对所有表达式进行排序。

    $query->leftJoin('tbs_111', 'tbs_111.111_id', '=',  'tbs_222.222_id');
    $query->if('tbs_111.111_id', null)->return('tbs_111.111_id', 1); //fake code
    $query->orderBy('tbs_111.111_id', $order);
    $query->select('tbs_222.*');

2 个答案:

答案 0 :(得分:0)

$query->leftJoin('tbs_111', 'tbs_111.111_id', '=',  'tbs_222.222_id')
      ->where( function($query) use ($order) {
       if(!is_null($order)){
       $query->where('tbs_111.111_id', $order)
       }
       })->select('tbs_222.*');

答案 1 :(得分:0)

我找到了第二部分问题的解决方案

$query->leftJoin('tbs_111', 'tbs_111.111_id', '=',  'tbs_222.222_id');
$query->orderBy(\DB::raw('IFNULL(tbs_111.111_id , 1) '), $order);
$query->select('tbs_222.*');