sql >> データベース >  >> RDS >> Mysql

Laravel 5.0でアウターフルジョインを使用するにはどうすればよいですか?

    クエリが何を達成しようとしているのか、どこで完全外部結合が必要なのかはわかりませんが、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つの外部結合が必要だと思うのかわかりませんが、上記のコードを適応させてクエリを実行し、状況に合わせて使用​​できるはずです。

    参照:




    1. macOSでのmy.cnfファイルの場所

    2. Androidのsqliteデータベースに大量のデータを挿入する方法

    3. MySQLのフィルタを使用した多対多のテーブルの内部結合

    4. 接続時にJavaアプリケーションがOracleに対して自身を識別するようにするにはどうすればよいですか?