クエリが何を達成しようとしているのか、どこで完全外部結合が必要なのかはわかりませんが、MySQLには完全外部結合のサポートが組み込まれていないということからこの回答を始めます。 このSOの質問 に基づく 、次のクエリを作成する別の方法を見つけることができます:
SELECT * FROM t1
FULL OUTER JOIN t2
ON t1.id = t2.id
これはUNION
として書き直すことができます 左結合と右結合の例:
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
Laravelでは、上記の完全な外部結合を表す次のコードを記述できます。
$second = DB::table('t2')
->rightJoin('t1', 't1.id', '=', 't2.id')
$first = DB::table('t1')
->leftJoin('t2', 't1.id', '=', 't2.id')
->unionAll($first)
->get();
繰り返しになりますが、なぜ2つの外部結合が必要だと思うのかわかりませんが、上記のコードを適応させてクエリを実行し、状況に合わせて使用できるはずです。
参照:
- MySQLの完全外部結合へのリンク:完全外部結合MySQL
- Laravel 5.3クエリビルダーのドキュメントへのリンク: https://laravel.com/docs/5.3/