laravel 5.4中的完全外连接查询

8iwquhpp  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(138)

我有两个表application_requeststransactions,这两个表中可能有匹配的记录,也可能没有。对于任何条件,我都希望这两个表中有记录。
transactions表中有一个外键列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;

事务表为

我的应用程序请求表是

nsc4cvqm

nsc4cvqm1#

$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;
hrysbysz

hrysbysz2#

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

$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

qncylg1j

qncylg1j3#

就像这样:

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

相关问题