Oracle
 sql >> Database >  >> RDS >> Oracle

logica nella clausola HAVING per ottenere più valori di un gruppo in base al risultato

A volte solo ascoltare le tue stesse parole in inglese si traduce nell'SQL più facile da leggere:

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))