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

mysql AND klausa pada kolom yang sama beberapa kali

Coba ini:

SELECT property_id FROM amenities
WHERE amenity_name IN ('parking', 'elevator')
GROUP BY property_id 
HAVING COUNT(amenity_name) >= 2

Inilah yang terjadi...

Pertama, dapatkan daftar ID Properti yang memiliki fasilitas yang Anda minati:

SELECT property_id FROM amenities WHERE amenity_name IN ('parking', 'elevator')

Kemudian persempit daftar untuk memasukkan hanya ID Properti yang memiliki lebih dari satu kemudahan. Pengelompokan berdasarkan property_id menggabungkan hasil ke dalam grup unik berdasarkan property_id mana mereka berasal. Kemudian, kita cukup menghitung jumlah amenity_names di setiap grup dan memeriksa apakah itu 2 atau lebih.

GROUP BY property_id HAVING COUNT(amenity_name) >= 2

Satu asumsi dalam kode di atas adalah Anda tidak akan memiliki amenity_name yang sama yang terkait dengan property_id lebih dari sekali. Untuk menghilangkan masalah yang terkait dengan itu, ubah HAVING klausa untuk menyertakan DISTINCT untuk menyingkirkan duplikatnya, tetapi jangan menambahkannya kecuali Anda membutuhkannya.

GROUP BY property_id HAVING COUNT(DISTINCT(amenity_name)) >= 2



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyimpan id facebook sebagai int atau varchar?

  2. Cara Menginstal Database MariaDB di Debian 10

  3. Tambahkan Kunci Asing ke tabel yang ada

  4. Kecocokan MySQL...melawan vs. sederhana seperti %term%

  5. Cara memilih Rentang baris berdasarkan nilai bidang - MySQL