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

MySQLで完全外部結合をシミュレートする効率的な方法は?

    LEFTJOINとRIGHTJOINを使用できます:

    SELECT * FROM tableA LEFT JOIN tableB ON tableA.b_id = tableB.id
    UNION ALL
    SELECT * FROM tableA RIGHT JOIN tableB ON tableA.b_id = tableB.id
    WHERE tableA.b_id IS NULL
    

    このトピックに関するウィキペディアの情報もいくつかあります。完全な外部結合> 。

    ウィキペディアの記事では、MySQLでUNIONを使用することを提案しています。これはUNIONALLよりも少し遅いですが、さらに重要なことに、常に正しい結果が得られるとは限りません。重複した行が出力から削除されます。したがって、ここではUNIONではなくUNIONALLを使用することをお勧めします。




    1. スカラー変数を宣言する必要があります

    2. MySQLスクリプトをH2に変換します

    3. トップ5のMySQL監視ツール

    4. 過去3か月のデータを取得するためのSQLクエリ