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:
- Länk till fullständiga yttre anslutningar i MySQL:Fullständig yttre gå med i MySQL
- Länk till Laravel 5.3 frågebyggardokument:https://laravel.com/docs/5.3/