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

SQL Pilih hanya baris dengan Nilai Minimum pada Kolom dengan Kondisi Dimana

Anda bisa memulainya dengan memilih minimum orderIndex produk yang tidak ditolak seperti ini:

SELECT productId, MIN(orderIndex)
FROM myTable
WHERE rejected = 0
GROUP BY productId;

Setelah Anda memilikinya, Anda dapat menggabungkannya dengan tabel asli Anda dengan syarat productId dan minOrderIndex cocok:

SELECT m.id, m.productId, m.orderIndex
FROM myTable m
JOIN(
  SELECT productId, MIN(orderIndex) AS minOrderIndex
  FROM myTable
  WHERE rejected = 0
  GROUP BY productId) tmp ON tmp.productId = m.productId AND tmp.minOrderIndex = m.orderIndex;

Permintaan saya membuat asumsi bahwa tidak ada pasangan duplikat (productId, orderIndex). Selama itu tidak ada, ini akan berfungsi dengan baik. Ini adalah SQL Fiddle contoh.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara mengurutkan urutan LEFT JOIN dalam kueri SQL?

  2. Query Mysql untuk Menghapus Duplikat Komentar Wordpress?

  3. Desain Basis Data:Kunci komposit vs kunci utama satu kolom

  4. Bagaimana Fungsi LCASE() Bekerja di MySQL

  5. Error 1046 No database Selected, bagaimana cara mengatasinya?