Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memilih Kereta Yang Lulus Semua Ujian dalam Senarai Menggunakan SQL?

Bagaimanakah Saya Boleh Memilih Kereta Yang Lulus Semua Ujian dalam Senarai Menggunakan SQL?

Susan Sarandon
Susan Sarandonasal
2025-01-14 10:53:44695semak imbas

How Can I Select Cars That Passed All Tests in a List Using SQL?

Tapis baris yang sepadan dengan semua item dalam senarai

Andaikan anda mempunyai dua jadual, "kereta" dan "ujian lulus", dan anda memerlukan cara untuk mengenal pasti kereta yang telah lulus set ujian tertentu. Jadual "paling lulus" merekodkan ujian yang diluluskan oleh setiap kenderaan.

Satu cara untuk mencapai matlamat ini adalah dengan menggunakan pernyataan IN. Walau bagaimanapun, kaedah ini mungkin tidak memberikan hasil yang diingini kerana ia mengembalikan kereta yang walaupun lulus salah satu ujian dalam senarai yang ditentukan. Untuk memadankan semua nilai dalam senarai dalam semua baris penyelesaian lain diperlukan.

Pertanyaan SQL berikut menggunakan klausa GROUP BY dan HAVING untuk menyelesaikan tugas ini:

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

Pertanyaan ini mula-mula mengumpulkan baris dalam jadual "paling lulus" mengikut lajur "carname". Ia kemudian menggunakan fungsi COUNT(DISTINCT) untuk mengira kiraan nilai "jenis ujian" yang berbeza bagi setiap kenderaan. Klausa HAVING digunakan untuk menapis keputusan untuk memilih hanya kereta dengan kiraan jenis ujian berbeza bersamaan dengan 4 (dengan andaian terdapat empat ujian dalam senarai).

Anda juga boleh menggunakan hasil pertanyaan ini sebagai pernyataan bersarang untuk mengekstrak maklumat tambahan daripada jadual "kereta":

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

Pertanyaan lanjutan ini akan mendapatkan semula semua data yang berkaitan daripada jadual "kereta" untuk kenderaan yang memenuhi kriteria yang ditetapkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Kereta Yang Lulus Semua Ujian dalam Senarai Menggunakan SQL?. 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