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

同じ列名で複数のテーブルを結合する

    汎用テーブルにexpiredAtを追加し、それを他のテーブルから削除して、スキーマ内の重複を削除し、この特定のクエリを単純化することを検討することをお勧めします。

    現在のスキーマを維持する必要がある場合は、テーブルエイリアスを使用して名前のあいまいさを解決し、2つの結合と1つの結合を使用して、探している結果を作成できます。

    SELECT g.id, g.scenario, f.expiresAt 
    FROM generalTable g
    JOIN facebookTable f
    ON g.id = f.id
    UNION ALL
    SELECT g.id, g.scenario, c.expiresAt 
    FROM generalTable g
    JOIN chiefTable c
    ON g.id = c.id;
    

    別の回答で言及されている外部結合アプローチも問題を解決します。



    1. MySQL-where句で集計列を参照しています

    2. SQLServerを使用したアクセスの概要をご覧ください

    3. Oracleの隠し機能

    4. java.sql.Timestampタイムゾーンは特定ですか?