Ik ben in de SQL FAQ aan het lezen geweest en daarin staat iets over LEFT en RIGHT joins.
Nu heb ik een paar tabellen (in een MySQL Database):
Tabel werknemers:
Tabel vestigingeng:
Als ik nu een LEFT JOIN doe:
Dan krijg ik alle vestigingen en alle werknemers, dus als een vestiging meerdere werknemers heeft wordt deze meerdere keren getoond, ook als een vestiging geen werknemers heeft wordt deze getoond.
Doe ik nu een right join:
Dan zou ik moeten krijgen: Alle werknemers en de daarbij behorende vestigingen, dus niet een vestiging zonder werknemers. Maar het resultaat is echter dat ik ook vestigingeng zonder werknemers krijg.
In de Faq staat dus dat dit niet zo is, als ik de tabellen goed begrijp.
Doe ik iets verkeerd, begrijp ik iets verkeerd, komt het omdat MySQL zich niet aan de SQL regeltjes houd, of is de FAQ niet juist? Helpt u mij
Nu heb ik een paar tabellen (in een MySQL Database):
Tabel werknemers:
| id | naam | vestiging |
| 1 | willemsen | 1 |
| 2 | Jansen | 2 |
| 3 | Pietersen | 1 |
Tabel vestigingeng:
| id | naam | plaats |
| 1 | WTC | New York |
| 2 | BTC | Enschede |
| 3 | ABC | Lochem |
Als ik nu een LEFT JOIN doe:
code:
1
2
3
4
5
6
7
| SELECT
vestigingen.naam,
vestigingen.plaats,
werknemers.naam AS werknemer
FROM vestigingen
LEFT JOIN werknemers
ON (vestigingen.id = werknemers.vestiging); |
Dan krijg ik alle vestigingen en alle werknemers, dus als een vestiging meerdere werknemers heeft wordt deze meerdere keren getoond, ook als een vestiging geen werknemers heeft wordt deze getoond.
Doe ik nu een right join:
code:
1
2
3
4
5
6
7
| SELECT
vestigingen.naam,
vestigingen.plaats,
werknemers.naam AS werknemer
FROM werknemers
RIGHT JOIN vestigingen
ON (vestigingen.id = werknemers.vestiging); |
Dan zou ik moeten krijgen: Alle werknemers en de daarbij behorende vestigingen, dus niet een vestiging zonder werknemers. Maar het resultaat is echter dat ik ook vestigingeng zonder werknemers krijg.
In de Faq staat dus dat dit niet zo is, als ik de tabellen goed begrijp.
Doe ik iets verkeerd, begrijp ik iets verkeerd, komt het omdat MySQL zich niet aan de SQL regeltjes houd, of is de FAQ niet juist? Helpt u mij