Andaikan terdapat dua jadual:
Soalan:
Bagaimana untuk mengenal pasti kereta yang lulus semua ujian (A,B,C,D) daripada jadual lulus?
Had penyataan IN:
Menggunakan pernyataan IN untuk memadankan baris yang mengandungi senarai ujian mungkin mengembalikan kereta yang lulus hanya subset ujian tersebut.
Penyelesaian: Kumpulan dan kira jenis ujian yang berbeza
Penyelesaian ini menggunakan COUNT() dan klausa HAVING:
<code class="language-sql">SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4;</code>
Pertanyaan ini mengumpulkan baris mengikut nama kereta dan mengira bilangan nilai jenis ujian yang berbeza. Sebuah kereta dengan kiraan 4 telah melepasi keempat-empat ujian.
Petua Tambahan:
Untuk mendapatkan semula data daripada jadual kereta berdasarkan set hasil, gunakan pertanyaan lanjutan ini:
<code class="language-sql">SELECT * FROM cars WHERE carname IN ( SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4 );</code>
Atas ialah kandungan terperinci Bagaimana untuk Cari Kereta Yang Lulus Semua Ujian (A, B, C, D) dalam Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!