laravel 5.4中的完全外连接查询

时间:2017-09-08 11:54:14

标签: laravel

我在两个表中都有两个表 application_requests 事务,可能有匹配的记录,也可能不是。对于我想要从两个表中记录的任何条件。

事务表中,有一个外键列 application_request_id (这具有 application_requests 表中主键的引用值)。这个条件匹配,然后它应显示为一行(或记录)。

我不知道如何在laravel中实现这一点。

我尝试了下面的代码,但它不起作用:

    $a = \DB::table('application_requests')->select('id');

    $b  = \DB::table('transactions')->select('application_request_id');

    $results = $b->union($a)->get();

    echo "<pre>";
    print_r($results);die;

交易表是 enter image description here

我的application_requests表是 enter image description here

3 个答案:

答案 0 :(得分:0)

两个外部联接,用于显示两个表中的所有行:

$second = DB::table('t2')
             ->rightJoin('t1', 't1.id', '=', 't2.id')

$first = DB::table('t1')
            ->leftJoin('t2', 't1.id', '=', 't2.id')
            ->unionAll($second)
            ->get();

来源:https://stackoverflow.com/a/41662283/4587214

答案 1 :(得分:0)

    $results = DB::table('transactions')
                ->leftJoin('application_requests','transactions.application_request_id','=','application_requests.id')
                ->select('transactions.partner_id as tr_pratnerid','transactions.application_request_id as tr_applicationrequestid','transactions.class_2_1 as tr_clas21','transactions.class_2_2 as tr_clas22','transactions.class_2_3 as tr_clas23','transactions.class_3_1 as tr_clas31',
                 DO THIS TO ALL FIELDS FROM BOTH TABLE)
                ->get();
    echo "<pre>";
    print_r($results);die;

答案 2 :(得分:0)

就是这样:

DB::table('transactions')->join('application_requests', 'transactions.application_request_id', '=', 'application_requests.id', 'full outer');
相关问题