Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mencari baris yang berbeza dengan nilai minimum dalam SQL menggunakan gabungan?

Bagaimana untuk mencari baris yang berbeza dengan nilai minimum dalam SQL menggunakan gabungan?

DDD
DDDasal
2025-01-24 08:21:09323semak imbas

How to Find Distinct Rows with Minimum Values in SQL Using Joins?

Pengoptimuman pertanyaan SQL: Mendapatkan baris unik dengan nilai minimum

Panduan ini menunjukkan teknik SQL yang cekap untuk mengekstrak baris unik yang mengandungi nilai minimum dari lajur tertentu. Ini sering diperlukan apabila berurusan dengan data dikumpulkan dan memerlukan gabungan gabungan dan penapisan.

Pertimbangkan jadual sampel berikut:

<code class="language-sql">id  game   point
1    x      5
1    z      4
2    y      6
3    x      2
3    y      5
3    z      8</code>
Objektifnya adalah untuk mengambil

dan id untuk setiap point unik, menunjukkan nilai minimum game untuk permainan itu. Set hasil yang dijangkakan ialah: point

<code class="language-sql">id  game   point
1    z      4
2    y      6
3    x      2</code>
pertanyaan SQL berikut mencapai ini:

<code class="language-sql">SELECT tbl.*
FROM TableName tbl
INNER JOIN (
    SELECT game, MIN(point) AS min_point
    FROM TableName
    GROUP BY game
) AS tbl1 ON tbl1.game = tbl.game AND tbl1.min_point = tbl.point;</code>
inilah pecahan pertanyaan:

Join Inner:
    ini dengan cekap menggabungkan
  • (alias sebagai ) dengan hasil subquery (alias sebagai ). TableName tbl tbl1 subquery:
  • Ini mengira minimum
  • untuk setiap unik menggunakan dan kumpulan hasilnya dengan point. Hasilnya adalah jadual dengan game dan minimum yang sepadan MIN(point). game game point pada klausa:
  • Keadaan gabungan memastikan bahawa hanya baris di mana
  • dan sepadan antara jadual utama dan subquery dimasukkan. Ini tepat memilih baris dengan minimum untuk setiap game. point point game Pertanyaan yang dioptimumkan ini mengelakkan kerumitan yang tidak perlu dan secara langsung mengambil hasil yang diinginkan. Ini penyelesaian yang lebih ringkas dan lebih cepat daripada pendekatan alternatif.

Atas ialah kandungan terperinci Bagaimana untuk mencari baris yang berbeza dengan nilai minimum dalam SQL menggunakan gabungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn