Ik heb voor een planner deze tabellen:
events(id, naam, tijd, minusers)
subscriptions(id, userid, eventid, comment)
users(id, nickname)
en deze code om een overzicht
(naam, tijd, minusers, organisator, aantalinschrijvingen) te creeeren.
Echter als ik subscriptions right join, komt er onzin uit (de organisatoren worden NULL en de subscriptions worden overal 332) en als ik inner- of leftjoin zie ik wat ik wil zien, met uitzondering van nieuwe events, omdat deze nog geen subscriptions hebben. Waarna niemand zich uberhaupt kan inschrijven
.
Hoe pas ik mijn query zo aan dat hou wat ik nu heb, maar bovendien de events die nog geen inschrijvingen hebben ook opneem in de outcome?
events(id, naam, tijd, minusers)
subscriptions(id, userid, eventid, comment)
users(id, nickname)
en deze code om een overzicht
(naam, tijd, minusers, organisator, aantalinschrijvingen) te creeeren.
SQL:
1
2
3
4
5
6
7
8
| SELECT e.id, e.naam, e.tijd, e.minusers, u.nickname AS organisator, COUNT( s.id ) AS aantalinschrijvingen FROM `events` AS e INNER JOIN `users` AS u ON e.organisator = u.id RIGHT JOIN `subscriptions` AS s ON e.id = s.eventid WHERE s.doetmee = 'Ja' <-- lelijk ik weet, wordt nog veranderd. AND e.tijd > 1 GROUP BY e.id ORDER BY e.id DESC |
Echter als ik subscriptions right join, komt er onzin uit (de organisatoren worden NULL en de subscriptions worden overal 332) en als ik inner- of leftjoin zie ik wat ik wil zien, met uitzondering van nieuwe events, omdat deze nog geen subscriptions hebben. Waarna niemand zich uberhaupt kan inschrijven
Hoe pas ik mijn query zo aan dat hou wat ik nu heb, maar bovendien de events die nog geen inschrijvingen hebben ook opneem in de outcome?
There is no replacement for displacement!