sql >> Databasteknik >  >> RDS >> Mysql

Hur använder man yttre full sammanfogning i laravel 5.0?

Jag vet inte exakt vad din fråga försöker uppnå, och var du behöver en fullständig yttre sammanfogning, men jag börjar det här svaret med att säga att MySQL inte har något inbyggt stöd för fullständig yttre sammanfogning. Baserat på denna SO-fråga , kan vi hitta ett sätt ett alternativt sätt att skriva följande fråga:

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

Detta kan skrivas om som en UNION av en vänsterkoppling och en högerkoppling:

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 skriva följande kod för att representera ovanstående fullständiga yttre sammanfogning:

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

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

Återigen, jag vet inte varför du tror att du behöver två yttre kopplingar, men oavsett bör du kunna anpassa ovanstående kod och fråga och använda den för din situation.

Referenser:




  1. Hur man skapar en unik begränsning på kolumn för redan befintlig tabell - SQL Server / TSQL självstudie del 97

  2. jQuery Autokomplettera Mysql PHP

  3. PostgreSQL-frågan mycket långsam med gräns 1

  4. Google Apps Script för att exportera kalkylblad till mySQL körs på flera filer