Hey!
Ik heb een klein MySQL vraagje:
ik heb 2 (erg grote) tabellen
- 1 tabel "cofena_abonnees" met allemaal abonnees. Ze hebben allemaal een uniek nummer in de kolom ID
-1 tabel "cofena_zaal" met alle plaatsen in mijn zaal (een 3000-tal). In deze tabel is er een kolom genaamd "abonnee" waarin ik het ID nummer van de abonnee zet die deze vaste plaats heeft.
Nu moet ik een lijst genereren van alle abonnees die plaatsen hebben. Er zijn veel meer abonnees dan plaatsen, maar slechts een klein deel van de abonnees heeft een plaats. Er zijn dus in de tabel cofena_zaal een hoop NULL values in de kolom "abonnee" omdat er niemand zit.
Bestaat er een soort join om dit te verwezelijken?
Hij moet dus enkele kolommen uit de tabel cofena_abonnees selecteren (die heb ik nodig), maar hij moet kijken of die abonnee wel ergens voorkomt in de tabel cofena_zaal.
Momenteel is mijn SQL statement dit:
Het probleem is dat hij met deze code iedere abonnee evenveel keer zal afprinten als dat hij plaatsen heeft. Abonnees met 3 plaatsen worden dus 3 keer in de lijst gezet.
Iemand een idee hoe ik dit kan doen in één SQL statement, of is dat niet mogelijk?
Tnx!
PS: ik weet dat het ook gaat via ingewikkeldere PHP code, waarbij ik elke plaats zou doorlopen, kijken of ik ze al gehad heb, en zoniet de abonnee opzoek. Maar wegens performance-redenen is dat geen optie.
Ik heb een klein MySQL vraagje:
ik heb 2 (erg grote) tabellen
- 1 tabel "cofena_abonnees" met allemaal abonnees. Ze hebben allemaal een uniek nummer in de kolom ID
-1 tabel "cofena_zaal" met alle plaatsen in mijn zaal (een 3000-tal). In deze tabel is er een kolom genaamd "abonnee" waarin ik het ID nummer van de abonnee zet die deze vaste plaats heeft.
Nu moet ik een lijst genereren van alle abonnees die plaatsen hebben. Er zijn veel meer abonnees dan plaatsen, maar slechts een klein deel van de abonnees heeft een plaats. Er zijn dus in de tabel cofena_zaal een hoop NULL values in de kolom "abonnee" omdat er niemand zit.
Bestaat er een soort join om dit te verwezelijken?
Hij moet dus enkele kolommen uit de tabel cofena_abonnees selecteren (die heb ik nodig), maar hij moet kijken of die abonnee wel ergens voorkomt in de tabel cofena_zaal.
Momenteel is mijn SQL statement dit:
code:
1
2
3
4
5
| $result = mysql_query("SELECT cofena_abonnees.naam FROM cofena_abonnees LEFT JOIN cofena_zaal ON cofena_abonnees.id = cofena_zaal.abonnee;");
while (list($naam) = mysql_fetch_row($result))
{
hier print ik dan een <tr> regeltje met de data van die abonnee
} |
Het probleem is dat hij met deze code iedere abonnee evenveel keer zal afprinten als dat hij plaatsen heeft. Abonnees met 3 plaatsen worden dus 3 keer in de lijst gezet.
Iemand een idee hoe ik dit kan doen in één SQL statement, of is dat niet mogelijk?
Tnx!
PS: ik weet dat het ook gaat via ingewikkeldere PHP code, waarbij ik elke plaats zou doorlopen, kijken of ik ze al gehad heb, en zoniet de abonnee opzoek. Maar wegens performance-redenen is dat geen optie.
[ Voor 25% gewijzigd door Joske Pauwels op 27-04-2004 21:37 ]