Archief - MySQL: Query met 3 tabellen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

.kw

Legacy Member
De tabellen

Tabel: activiteiten
- activiteitid
- datum
- titel
- locatieid
- groepid
- ...

Bijvoorbeeld: 1, 18 augustus, Fietstocht, 1, 2, ...

Tabel: groepen
- groepid
- naam

Bijvoorbeeld: 2, Kleuters

Tabel: locaties
- locatieid
- naam

Bijvoorbeeld: 1, Speelplein


Wat moet ik uit de query halen?

- datum van de activiteit
- titel van de activiteit
- locatie van de activiteit
- voor welke groep is de activiteit

Is het mogelijk deze informatie uit 1 query te halen?

Obliv`

Legacy Member
ik ken geen mysql, wel oracle en access
dit is een ouderwetse (mss wel niet erg performante oplossing)

SELECT a.datum, a.titel, g.naam, l.naam
FROM activiteiten a, groepen g, locaties l
WHERE a.groepid = g.groepid
AND a.locatieid = l.locatieid;

normaal werkt mysql zo met FROM activiteiten a JOIN on (a.id = l.id) ofzo
maar dit ken ik niet... :)
maar mijn oplossing zou zeker ook moeten werken ;)

groeten

zero2one

Legacy Member
ik ken geen mysql, wel oracle en access
dit is een ouderwetse (mss wel niet erg performante oplossing)
uw manier werkt ook maar dit is beter leesbaar (je maakt duidelijk waar de relaties liggen (in de ON statements) en welke de selectie criteria zijn (in de WHERE)):
Code:
SELECT
  a.datum,
  a.titel,
  b.naam AS groepnaam,
  c.naam AS locatie
FROM
  activiteiten a
  INNER JOIN groepen b ON (a.groepid = b.groepid)
  INNER JOIN locaties c ON (a.locatieid = c.locatieid)

btw: Oracle, mssql, access, ... gebruiken deze syntax ook, is zeker niet mysql only sql!!

zie >> ANSI SQL/99

Obliv`

Legacy Member
zero2one zei:
btw: Oracle, mssql, access, ... gebruiken deze syntax ook, is zeker niet mysql only sql!![/B]
zie >> ANSI SQL/99

weet ik wel hoor, maar we hebben een sql boek voor oracle van +600blz en we hebben nog maar een klein deel ervan gezien (150blz ofzo)
kheb juist het eerste jaar TI gedaan en normaal was sql pas voor volgend jaar...

die JOIN on toestanden en de rest van da boek zijn gepland voor volgend jaar :)
dus dan zal ik wel kunne meeprate over die dinge ;)

groete
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan