Bagaimana untuk Cari Item yang Hadir dalam Pelbagai Kategori Khusus dalam Jadual Bersekutu MySQL?

Barbara Streisand
Lepaskan: 2024-10-28 06:55:02
asal
949 orang telah melayarinya

How to Find Items Present in Multiple Specific Categories in a MySQL Associative Table?

Mencari ID Berlaku dalam Nilai Lajur Tertentu pada Berbilang Baris

Dalam jadual bersekutu MySQL, mengenal pasti item yang terdapat dalam berbilang kategori tertentu menimbulkan cabaran . Pendekatan awal menggunakan operator DAN dan ATAU tidak berkesan, kerana ia tidak mengambil kira keperluan kehadiran item dalam semua kategori tertentu.

Untuk menangani isu ini, teknik sambung sendiri boleh digunakan:

<code class="sql">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</code>
Salin selepas log masuk

Kaedah ini menggabungkan dua baris dalam jadual untuk mencipta satu baris dalam set hasil, membenarkan penilaian berbilang syarat kategori.

Pendekatan alternatif melibatkan penggunaan GROUP BY:

<code class="sql">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</code>
Salin selepas log masuk

Pertanyaan ini mengumpulkan item mengikut ID dan mengira bilangan kategori miliknya. Klausa HAVING memastikan bahawa hanya item yang hadir dalam semua kategori tertentu dikembalikan.

Kedua-dua teknik menawarkan penyelesaian yang cekap untuk mencari item pada berbilang baris dengan nilai lajur tertentu, dengan prestasinya berbeza-beza berdasarkan bilangan kategori yang disoal.

Atas ialah kandungan terperinci Bagaimana untuk Cari Item yang Hadir dalam Pelbagai Kategori Khusus dalam Jadual Bersekutu MySQL?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!