Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL Select ID yang muncul pada baris yang berbeda dengan beberapa nilai spesifik untuk sebuah kolom

Ekspresi Anda dalam klausa WHERE bekerja melawan baris tunggal dari kumpulan hasil gabungan. Itu sebabnya WHERE category_id = 201 AND category_id = 202 tidak berfungsi -- karena tidak boleh dua nilai dalam satu baris.

Jadi, Anda memerlukan beberapa cara untuk menggabungkan dua baris dari tabel menjadi satu baris dari kumpulan hasil. Anda dapat melakukannya dengan gabung mandiri :

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

Teknik ini sulit untuk ditingkatkan ketika Anda ingin mencari nilai tiga, empat, lima atau lebih, karena memerlukan N-1 bergabung untuk mencocokkan N nilai.

Jadi metode lain adalah dengan menggunakan GROUP BY:

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

Kedua teknik ini baik-baik saja, dan bekerja lebih baik dalam situasi yang berbeda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. F# Pemula:mengambil larik data dari server

  2. Konversi dinamis string menjadi nama kolom. MySQL

  3. Metode tidak ditemukan di kelas

  4. Tolong contoh koneksi JavaFX MySQL

  5. Bagaimana cara menyimpan html di database mysql