Ik heb een query die mensen uit een database plukt die op betreffende datum nog niet ingeroosterd in het systeem zijn, en die op die datum niet hebben aangegeven afwezig te zijn. Ik kom dan uit op het volgende:
Dit werkt prima, behalve dan het feit dat ie dus de mensen selecteert die WEL ingeroosterd zijn, of WEL aangegeven hebben die dag niet aanwezig te zijn. Hoe krijg je in MySQL nu het omgekeerde? Ik dacht het leuk met een subquery te doen, kent dat idiote ding niets in die geest. Concreet dus: ik wil de inhoud van de PERSON tabel, zonder de pIDs die uit de bovenstaande query tevoorschijnkomen.
code:
1
2
3
4
5
6
| SELECT p.pID,p.sysname FROM PERSON as p
LEFT OUTER JOIN unavailable AS u ON p.pID=u.pID
LEFT OUTER JOIN does AS d ON p.pID=d.pID
LEFT OUTER JOIN JOB AS j ON j.jobID=d.jobID
WHERE DATE_FORMAT('2004-05-05 15:00','%Y-%m-%d') = j.date
OR DATE_FORMAT('2004-05-05 15:00','%Y-%m-%d') BETWEEN u.startdatetime AND u.enddatetime |
Dit werkt prima, behalve dan het feit dat ie dus de mensen selecteert die WEL ingeroosterd zijn, of WEL aangegeven hebben die dag niet aanwezig te zijn. Hoe krijg je in MySQL nu het omgekeerde? Ik dacht het leuk met een subquery te doen, kent dat idiote ding niets in die geest. Concreet dus: ik wil de inhoud van de PERSON tabel, zonder de pIDs die uit de bovenstaande query tevoorschijnkomen.