sql >> Databáze >  >> RDS >> Mysql

klauzule mysql AND na stejném sloupci několikrát

Zkuste toto:

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

Tady je to, co se děje...

Nejprve si získejte seznam ID nemovitosti, která mají vybavení, o které máte zájem:

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

Poté seznam zúžte tak, aby zahrnoval pouze ta ID nemovitosti, která mají více než jedno vybavení. Seskupování podle property_id seskupuje výsledky do jedinečných skupin podle toho, ke kterému property_id patří. Poté jednoduše spočítáme počet jmen amenity v každé skupině a zkontrolujeme, zda je 2 nebo větší.

GROUP BY property_id HAVING COUNT(amenity_name) >= 2

Jedním z předpokladů ve výše uvedeném kódu je, že nebudete mít stejný amenity_name spojený s property_id více než jednou. Chcete-li odstranit problémy s tím související, změňte HAVING klauzule pro zahrnutí DISTINCT k odstranění duplikátů, ale nepřidávejte je, pokud to nepotřebujete.

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



  1. Jaká jsou pravidla pro používání interních parametrů v SSRS

  2. Potřebujete vždy databázi pro svou aplikaci?

  3. Jak extrahovat číslo týdne z data v PostgreSQL

  4. Provádění více dotazů v codeigniter, které nelze provést jeden po druhém