Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL Kemungkinan untuk BERGABUNG dengan tabel terhadap daftar data statis yang disediakan?

Jika saya memahami kueri Anda dengan benar, Anda bermaksud untuk memilih catatan dengan sort_metric terendah, dan jika ada lebih banyak, catatan dengan id terendah. Selfjoin ganda Anda disebabkan oleh tidak ingin menduplikasi daftar jelek in(). Cara lain untuk melakukannya adalah dengan menggunakan CTE, hanya membutuhkan satu self-join:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pembaruan MySQL dengan sub pilih

  2. Cara Menyimpan info pengecualian / kegagalan Pemicu MySQL ke dalam Tabel atau dalam Variabel

  3. Apakah ada perpustakaan penyatuan koneksi mysql standar untuk C?

  4. Pilih catatan dari satu minggu sebelumnya di mysql

  5. jika tidak ada Pernyataan SQL Memberikan Kesalahan