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

MySQL mendapatkan baris tetapi lebih memilih satu nilai kolom daripada yang lain

Ini harus melakukannya:

SELECT
     T1.id,
     T1.name,
     T1.value,
     T1.priority
FROM
     My_Table T1
LEFT OUTER JOIN My_Table T2 ON
     T2.name = T1.name AND
     T2.priority > COALESCE(T1.priority, -1)
WHERE
     T2.id IS NULL

Ini juga memungkinkan Anda untuk memiliki beberapa tingkat prioritas dengan yang tertinggi adalah yang ingin Anda kembalikan (jika Anda memiliki 1 dan 2, 2 akan dikembalikan).

Saya juga akan mengatakan bahwa sepertinya ada beberapa masalah desain di DB. Pendekatan saya adalah:

My_Table (id, nama)My_Values ​​(id, prioritas, nilai) dengan FK pada id ke id. PK pada id di My_Table dan id, prioritas di My_Values. Tentu saja, saya juga akan menggunakan nama tabel yang sesuai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memilih beberapa kolom/bidang di subquery MySQL

  2. MySQL "TIDAK DALAM" kueri 3 tabel

  3. Menjumlahkan rentang tanggal tanpa menghitung tumpang tindih di mysql

  4. Mengapa jadwal acara mysql tidak berfungsi di database localhost?

  5. Kata yang dicadangkan dalam nama kolom - masukkan ke MySQL