select * from person left join g2p
on person.id = g2p.person_id
and grupp_id = 10
where g2p.person_id is null
Frågan#1
Hej,
Problem: Få ut alla personer som inte är med i grupp 10.
Tabeller:
+-----------+
| person |
+-----------+
| id | PK
| ......... |
+-----------+
+-----------+
| grupp |
+-----------+
| id | PK
| ......... |
+-----------+
+-----------+
| g2p |
+-----------+
| person_id | FK -> person.id
| grupp_id | FK -> grupp.id
+-----------+
Nuvarande lösning:
Fråga 1:
SELECT p.id
FROM person p,
g2p g
WHERE p.id = g.person_id
AND g.grupp_id = 10
Fråga 2:
SELECT p.id
FROM person p
WHERE p.id NOT IN(1,2,3,4) /* <- p.id´n från föregående fråga */
Finns det en elegantare lösning?