sql >> Database teknologi >  >> RDS >> Mysql

Hvordan bruger man outer full join i laravel 5.0?

Jeg ved ikke præcis, hvad din forespørgsel forsøger at opnå, og hvor du har brug for en fuld ydre joinforbindelse, men jeg vil begynde dette svar med at sige, at MySQL ikke har nogen indbygget understøttelse for fuld ydre joinforbindelse. Baseret på dette SO-spørgsmål , kan vi finde en alternativ måde at skrive følgende forespørgsel på:

SELECT * FROM t1
FULL OUTER JOIN t2
    ON t1.id = t2.id

Dette kan omskrives som en UNION af en venstre join og en højre join:

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id

I Laravel kan vi skrive følgende kode for at repræsentere ovenstående fulde ydre joinforbindelse:

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

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

Igen, jeg ved ikke, hvorfor du tror, ​​du har brug for to ydre joinforbindelser, men uanset hvad bør du være i stand til at tilpasse ovenstående kode og forespørgsel og bruge den til din situation.

Referencer:




  1. Sådan gendannes Mysql-database fra backup-filer

  2. MySQL-forælder -> underordnet forespørgsel

  3. Skift et logins standardsprog i SQL Server

  4. Hvordan undslipper man kommaer i CSV-værdier, når man importerer tabel til MySQL?