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

MySQL提供された静的なデータリストに対してテーブルを結合することは可能ですか?

    クエリを正しく理解している場合は、sort_metricが最小のレコードを選択する予定です。これらのレコードがさらにある場合は、IDが最小のレコードを選択します。二重の自己結合は、醜いin()リストを複製したくないことが原因です。これを実現する別の方法は、CTEを使用して、1つの自己結合のみを必要とすることです。

    WITH ext AS (
      SELECT id,f_key,name,sort_metric
      FROM tmp.names
      WHERE  f_key IN ( 1, 3, 254, 257, 301, 273, 279 )
      )
    SELECT t1.*
      FROM ext t1
      WHERE NOT EXISTS (
        SELECT *
        FROM ext t2
        WHERE t2.sort_metric <= t1.sort_metric
        AND t2.f_key = t1.f_key
        AND t2.id < t1.id
        )
      ORDER BY t1.id
      LIMIT 1
      ;
    


    1. PostgreSQLとMySQL:どちらが最適ですか?

    2. ORA-00910:指定された長さがデータ型に対して長すぎます

    3. PostgreSQLデータベースの作成

    4. 結合を使用したjOOQの行の更新