Oracle
 sql >> Base de données >  >> RDS >> Oracle

logique dans la clause HAVING pour obtenir plusieurs valeurs d'un groupe par résultat

Parfois, le simple fait d'écouter vos propres mots en anglais se traduit par le SQL le plus facile à lire :

SELECT DISTINCT a.user_id, a.code
   FROM my_table a
   WHERE a.user_id in 
       (SELECT b.user_id
       FROM my_table b
       WHERE b.ROLE_ID = 13)
    AND a.user_id in 
       (SELECT b.user_id
       FROM my_table b
       WHERE b.ROLE_ID = 15)
   AND a.user_id NOT IN 
       (SELECT b.user_id
       FROM my_table b
       WHERE b.ROLE_ID NOT IN (13,15))