Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Logik in der HAVING-Klausel, um mehrere Werte einer Gruppe nach Ergebnis zu erhalten

Manchmal wird das Anhören Ihrer eigenen Worte auf Englisch in das am einfachsten zu lesende SQL übersetzt:

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