koppeling tabellen met zelfde namen
Johan Maas
06/06/2007 21:50:00Hieronde de QUERY
"SELECT *
FROM werk_agenda
LEFT JOIN werk_werkplek
ON werk_agenda.werkplek_id = werk_werkplek.werkplek_id
WHERE YEAR(datum) = $y AND MONTH(datum) = $m
ORDER BY datum";
In beide tabellen komen kolommen met dezelfde namen voor.
Het probleem is nu als ik bv $rij["X"]; opvraag die beide tabellen bezitten, hoe kan ik dan de query zo opbouwen dat alle kolommen apart aanspreekbaar zijn.
Ik kan natuurlijk ook zorgen dat alle kolommen uit de verschillende tabellen die ik gebruik, een unieke naam hebben.
"SELECT *
FROM werk_agenda
LEFT JOIN werk_werkplek
ON werk_agenda.werkplek_id = werk_werkplek.werkplek_id
WHERE YEAR(datum) = $y AND MONTH(datum) = $m
ORDER BY datum";
In beide tabellen komen kolommen met dezelfde namen voor.
Het probleem is nu als ik bv $rij["X"]; opvraag die beide tabellen bezitten, hoe kan ik dan de query zo opbouwen dat alle kolommen apart aanspreekbaar zijn.
Ik kan natuurlijk ook zorgen dat alle kolommen uit de verschillende tabellen die ik gebruik, een unieke naam hebben.
PHP hulp
11/01/2025 19:43:25Sebastiaan Blaas
06/06/2007 21:51:00Johan Maas
06/06/2007 21:55:00Joren de Wit
07/06/2007 10:59:00Stel:
gebruikers
------------
id
naam
datum
reserveringen
----------------
id
gebruiker_id
datum
De datum in de eerste tabel is de registratiedatum van een gebruiker, en in de tweede tabel is de reserveringsdatum (namen dus niet slim gekozen, maar daar hebben we het niet over).
Om nu beide data op te halen:
In deze query worden verschillende aliassen gebruikt: registratie- en reserveringsdatum om die kolommen een unieke naam te geven. En g en r als afkorting voor de tabelnamen. Op die manier hoef ik niet elke keer de hele tabelnaam uit te typen.
gebruikers
------------
id
naam
datum
reserveringen
----------------
id
gebruiker_id
datum
De datum in de eerste tabel is de registratiedatum van een gebruiker, en in de tweede tabel is de reserveringsdatum (namen dus niet slim gekozen, maar daar hebben we het niet over).
Om nu beide data op te halen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
g.naam,
g.datum AS registratiedatum,
r.id,
r.datum AS reserveringsdatum
FROM
gebruikers AS g
LEFT JOIN
reserveringen AS r
ON
r.gebruiker_id = g.id
ORDER BY
g.datum
g.naam,
g.datum AS registratiedatum,
r.id,
r.datum AS reserveringsdatum
FROM
gebruikers AS g
LEFT JOIN
reserveringen AS r
ON
r.gebruiker_id = g.id
ORDER BY
g.datum
In deze query worden verschillende aliassen gebruikt: registratie- en reserveringsdatum om die kolommen een unieke naam te geven. En g en r als afkorting voor de tabelnamen. Op die manier hoef ik niet elke keer de hele tabelnaam uit te typen.
Martijn Wieringa
07/06/2007 11:03:00Zowel op tabelnamen als kolomnamen kun je een 'alias' toepassen.