sql >> Databáze >  >> RDS >> Mysql

Jak používat vnější úplné spojení v laravel 5.0?

Nevím, čeho přesně se váš dotaz snaží dosáhnout a kde potřebujete úplné vnější spojení, ale začnu tuto odpověď tím, že MySQL nemá žádnou vestavěnou podporu pro úplné vnější spojení. Na základě této otázky SO , můžeme najít alternativní způsob, jak napsat následující dotaz:

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

Toto lze přepsat jako UNION levého a pravého spojení:

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

V Laravelu můžeme napsat následující kód, který bude reprezentovat výše uvedené úplné vnější spojení:

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

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

Znovu, nevím, proč si myslíte, že potřebujete dvě vnější spojení, ale bez ohledu na to byste měli být schopni přizpůsobit výše uvedený kód a dotaz a použít jej pro vaši situaci.

Odkazy:




  1. Problém s FULLTEXT indexy MySQL

  2. Jak dosáhnu toho, aby instalace gem fungovala na OS X Lion s Ruby 1.8.7, aniž by seg chyboval?

  3. Jak získat včerejší datum v PostgreSQL

  4. Připojení AnySQL Maestro k Salesforce.com