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
DDDasal
2025-01-14 11:13:44852semak imbas

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>

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>

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!

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