sql >> Database >  >> RDS >> Mysql

MySQL worstelt met zoekopdracht in een-op-veel-relatie die aan meerdere voorwaarden voldoet

Dit is een relationele verdeling probleem.

De manier die u voorstelt met de COUNT is waarschijnlijk de gemakkelijkste in MySQL

SELECT product_id
FROM product_attributes pa
WHERE (attribute='size' and value='medium')
OR (attribute='colour' and value='blue')
GROUP BY product_id
HAVING COUNT(DISTINCT CONCAT(attribute,value) ) = 2

Er is een andere benadering met dubbel NOT EXISTS in het gelinkte artikel, maar aangezien MySQL geen CTE's ondersteunt, zou dat behoorlijk omslachtig zijn.



  1. PDO MySQL-stuurprogramma op Mac

  2. Datumparameter doorgeven aan native query

  3. Hoe kan ik het aantal rijen tellen dat een MySQL-query heeft geretourneerd?

  4. Hoe verwijder ik overtollige naamruimte in geneste query bij gebruik van FOR XML PATH?