sql >> Base de Datos >  >> RDS >> Oracle

lógica en la cláusula HAVING para obtener múltiples valores de un grupo por resultado

A veces, solo escuchar sus propias palabras en inglés se traduce en el SQL más fácil de leer:

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