Rumah > pangkalan data > tutorial mysql > Bagaimana untuk memilih kereta yang telah lulus semua ujian dalam senarai?

Bagaimana untuk memilih kereta yang telah lulus semua ujian dalam senarai?

DDD
Lepaskan: 2025-01-14 11:13:44
asal
847 orang telah melayarinya

How to Select Cars That Have Passed All Tests in a List?

Menapis Kereta Yang Berjaya Melengkapkan Semua Ujian

Mengenal pasti kereta yang telah lulus semua ujian yang diperlukan daripada senarai yang diberikan dengan cekap memerlukan kaedah yang lebih canggih daripada semakan operator IN yang mudah, terutamanya apabila berurusan dengan berbilang ujian. Pendekatan yang lebih tepat memanfaatkan kuasa fasal GROUP BY dan HAVING.

Pertimbangkan pertanyaan SQL ini untuk memilih kereta yang telah melepasi setiap ujian dalam set yang telah ditetapkan:

<code class="language-sql">SELECT carname
FROM PassedTest
GROUP BY carname
HAVING COUNT(DISTINCT testtype) = 4</code>
Salin selepas log masuk

Pertanyaan ini mengumpulkan hasil dengan carname dan menggunakan klausa HAVING dengan COUNT(DISTINCT testtype). Ini memastikan hanya kereta yang telah melepasi empat jenis ujian yang berbeza (dengan mengandaikan empat ujian ada dalam senarai) dimasukkan dalam output.

Untuk hasil yang lebih menyeluruh, menggabungkan ini sebagai subkueri dengan jadual cars membolehkan mendapatkan butiran kereta tambahan:

<code class="language-sql">SELECT *
FROM cars
WHERE carname IN (
    SELECT carname
    FROM PassedTest
    GROUP BY carname
    HAVING COUNT(DISTINCT testtype) = 4
)</code>
Salin selepas log masuk

Pertanyaan dipertingkat ini menawarkan pemilihan kereta yang tepat dan lengkap yang berjaya melepasi semua ujian dalam senarai yang ditetapkan.

Atas ialah kandungan terperinci Bagaimana untuk memilih kereta yang telah lulus semua ujian dalam senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan