Masalah:
Anda mempunyai jadual bersekutu di mana item boleh tergolong dalam pelbagai kategori. Bagaimanakah anda boleh memilih item yang tergolong dalam set kategori tertentu sahaja?
Penyelesaian:
Untuk memilih item yang memenuhi berbilang nilai khusus untuk lajur, terdapat dua pendekatan utama dalam MySQL:
Kaedah Join Sendiri:
Kaedah ini membandingkan berbilang baris dari jadual yang sama dalam satu operasi gabungan. Contohnya, untuk memilih item dalam kategori 201 dan 202:
SELECT c1.item_id FROM item_category AS c1 INNER JOIN item_category AS c2 ON c1.item_id = c2.item_id WHERE c1.category_id = 201 AND c2.category_id = 202
KUMPULAN MENGIKUT Kaedah:
Kaedah ini mengumpulkan baris mengikut lajur dan menggunakan COUNT() agregat untuk mengesahkan sama ada item tergolong dalam semua kategori yang ditentukan. Contohnya, untuk memilih item dalam kategori 201 dan 202:
SELECT c.item_id, COUNT(*) AS cat_count FROM item_category AS c WHERE c.category_id IN (201,202) GROUP BY c.item_id HAVING cat_count = 2
Pilihan antara dua kaedah ini bergantung pada bilangan kategori yang anda cari dan pertimbangan prestasi.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Item Kepunyaan Pelbagai Kategori dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!