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

sql2つのテーブルからの3つのクエリを1つのクエリに結合する方法

    これらの要件は十分に混乱しているため、データモデルを再評価する価値があるかもしれません。 UNIONだと思います ソリューションは、UNION ALLを使用するように変更するのが最善の策です。 効率のために。

    私は、このページの他のクエリと同じくらい多くの微妙な問題を抱えている可能性が高いミューテックスベースのハックをまとめました。

    select
      coalesce(t2.id, t1.name) AS ID,
      coalesce(t2.company, t1.name) AS Company,
      if(isnull(t2.id), 'NOT FOUND', 'FOUND') as Status
    from (select 0 as mutex union select 1) as m
    left join table1 as t1 on 1 = 1
    left join table2 as t2 on t1.name = t2.name or (t1.id = t2.id and mutex)
    group by coalesce(t2.id, t1.name)
    

    ただし、これらのクエリを注意深くテストし、データと結果を確認してください。入力データによっては、エラーの余地がたくさんあります。



    1. Java JDBC MySQLの例外:ResultSetを閉じた後の操作は許可されません

    2. OracleのLISTAGG関数を一意のフィルターで使用するにはどうすればよいですか?

    3. MySQL:別のサーバーからのSELECT

    4. Python3.x用のMySQL-dblib?