JOINS
Ik ben bezig met het leren van JOINS alleen kom er even niet uit:
SELECT domeinnamen.domeinnaam AS domeinnaam, hostingpakketten.naam_pakket AS hostingnaam
FROM orders_ditaals
JOIN (domeinnamen, hostingpakketten)
ON (orders_ditaals.domein_id AND orders_ditaals.host_id = hostingpakketten.host_id )
Als ik dit uitvoer, krijg ik wel gegevens maar deze kloppen niet met wat het moet wezen. Is hier iets fout?
Je krijgt wel allemaal domeinnamen te zien, alleen je krijgt de benamingen voor de hostinpakketten allemaal samengevoegd bij elkaar. En dat moet niet.
Miss toch een fout in mijn sql code?
Alvast bedankt voor je uitleg
Het moest zijn:
SELECT domeinnamen.domeinnaam AS domeinnaam, hostingpakketten.naam_pakket AS hostingnaam
FROM orders_ditaals
JOIN (domeinnamen, hostingpakketten)
ON (orders_ditaals.domein_id = domeinnamen.domein_id AND orders_ditaals.host_id = hostingpakketten.host_id )
Excuus, het is al erg laat...
SELECT domeinnamen.domeinnaam AS domeinnaam, hostingpakketten.naam_pakket AS hostingnaam
FROM orders_ditaals
JOIN (domeinnamen, hostingpakketten)
ON (orders_ditaals.domein_id = domeinnamen.domein_id AND orders_ditaals.host_id = hostingpakketten.host_id )
Ik heb in de tabel: orders nog een klanten_id waarmee ik uit de tabel: klanten de achternaam van de klant kan halen. Hoe verwerk ik dit allemaal in de zelfde stukje sql code als hier boven beschreven?
Alvast bedankt :D
En gaarne niet bumpen... Bewerk je bericht als je iets wil toevoegen...
Hoe wil je nu omgaan met een CROSS, INNER, LEFT, RIGHT, FULL en/of OUTER join? En hoe wil je voorwaarden gaan stellen aan de join? Toch niet in de WHERE mag ik hopen, dat is zéér inefficiënt.
Leesvoer
@WillemJan z : Sorry! was al laat...
Ik heb het boek PHP 5 het complete boek van Arjan Burger en Wouter Tengeler.
Daar had ik een en ander gelezen over JOINS. Maar begrijp er nog niet zo veel van....
Voer de volgende query maar eens uit:
Wiskundig is dit onmogelijk en dit hoort door de database met een foutmelding te worden afgeschoten. Normale databases doen dit dan ook, MySQL verzint onzin.
JOINS is mijn spreek wijze, het is natuurlijk JOIN ;).
Mooi dat jij het een goed boek vindt, met bovenstaande SQL als voorbeeld weet ik al wel dat het geen goed boek is om SQL te leren. Maar dat geeft ook niet, het is geen SQL- en/of databaseboek.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Verder: weer jij nog een goed boek om alles over Mysql te weten?
1+'a'-4=-3 (zegt mijn sql dan)
:( waarom reageert niemand serieus?
ruliezz schreef op 11.04.2009 12:41:
Dat is toch geen reden om per se een join te gebruiken. Gebruik een join als je dat daadwerkelijk nodig hebt en in andere gevallen dus niet.Ik vind het leuk en leerzaam om dat via JOIN te doen ook omdat dit boek er aandacht aan besteed.
Maar goed, om terug te komen op je vraag: het antwoord is eigenlijk al gegeven. De syntax die je daar gebruikt is in ieder geval niet de standaard en dat verklaart direct het probleem waar jij tegen aan loopt.
Lees de handleiding die in de 4e post an dit topic gegeven wordt eens door, en dan met name het gedeelte over het selecteren uit meerdere tabellen. En om nog maar een duwtje in de goede richting gegeven, hier je oorspronkelijke query anders uitgeschreven:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
SELECT
d.domeinnaam AS domeinnaam,
h.naam_pakket AS hostingnaam
FROM
orders_ditaals AS od
INNER JOIN
domeinnamen AS d
ON d.domein_id = od.domein_id
INNER JOIN
hostingpakketten AS h
ON h.host_id = od.host_id
d.domeinnaam AS domeinnaam,
h.naam_pakket AS hostingnaam
FROM
orders_ditaals AS od
INNER JOIN
domeinnamen AS d
ON d.domein_id = od.domein_id
INNER JOIN
hostingpakketten AS h
ON h.host_id = od.host_id
Hier kun jij nu zelf heel eenvoudig meerdere JOINs aan toevoegen en eventueel de resultaten verder filteren dmv een WHERE clausule.
ps. Uiteraard kun je de INNER JOIN ook nog veranderen in bijvoorbeeld een LEFT JOIN, al naar gelang de manier waarop jij gegevens wilt selecteren.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
kun je bij die SELECT nu ook meedere tabellen op geven? Zoals ik in mijn 3e post probeer uit te leggen?
Klopt, maar ik vind het leuk om het te weten hoe het werkt, en ben bezig met een project waar ik het misschien wil toepassen.
Maar voor elke andere tabel waaruit je gegevens wilt selecteren, zul je een JOIN op moeten nemen. Er moet immers wel een onderlinge relatie tussen de geselecteerde gegevens bestaan.
JOINS is mijn spreek wijze, het is natuurlijk JOIN ;).
ruliezz schreef op 11.04.2009 16:08:
@pgFrank : PHP 5 boek is geen verkeerd boek, zoek maar eens op ISBN: 978-90-5940-329-1.
JOINS is mijn spreek wijze, het is natuurlijk JOIN ;).
JOINS is mijn spreek wijze, het is natuurlijk JOIN ;).
Waarom word dit bericht twee keer gepost??
Gelieve Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door ruliezz
edit: Huh? Het staat er geen 2x? Die 2e heb je niet bewerkt? En die andere zie ik maar 1 keer?
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
@WillemJan: zie post van 12:20 uur ;-)
Ik kan er niks aan doen, het forum poste hem 2 x