Hi all,

ik heb 2 tabellen: locaties & bestellingen (uiteraard meer, maar hier gaat het om)
Nou kan een bestelling een leveraders en factuuradres bevatten, welke kan verschillen.

Is het mogelijk om in 1 query mbv join de 2 locaties per bestelling eruit te krijgen ?
Dus dat ik per 'result' 2 verschillende waardes van de tabel locaties kan ophalen

[size=xsmall]Toevoeging op 07/03/2016 21:24:29:[/size]

ow misschien moet ik voorbeeld tabelstructuur laten zien? :P
locaties:
l_id - int 10
l_userid - int 10
l_adres - varchar 100
l_postcode - varchar 6
l_plaats - varchar 32

bestellingen:
b_id - int 10
b_userid - int 10
b_producten - text
b_afleverlocatie - int 10
b_factuurlocatie - int 10

Met deze query krijg ik bijv. 2 records voor maar 1 bestelling. Hoe kan ik dit oplossen? Of vraag ik nou om het onmogelijke en zal ik eromheen moeten werken ? :) (is geen probleem hoor, maar ik probeer wat meer te leren met JOIN en zo ook m'n codes te beperken)
Ik heb iig alles in 1 array, hoewel ik dan nog niet weet of de 1e nou aflever of factuur adres is :)


SELECT b.b_id,l.* FROM locaties l
JOIN bestellingen b
ON b.afleverlocatie = l.loc_id OR b.factuurlocatie = l.loc_id
Je kan de tabel met locaties twee maal joinen, door de kolommen te aliassen kan je het onderscheid maken tussen factuur- en afleveradres:

SELECT b.b_id, fac.*,
	afl.l_adres afl_adres,
	afl.l_postcode afl_postcode,
	afl.l_plaats afl_plaats
FROM bestellingen b
JOIN locaties fac
	ON b.b_factuurlocatie = fac.l_id
JOIN loacties afl
	ON b.b_afleverlocatie = afl.l_id
Ger van Steenderen op 08/03/2016 00:38:18

Je kan de tabel met locaties twee maal joinen, door de kolommen te aliassen kan je het onderscheid maken tussen factuur- en afleveradres:

SELECT b.b_id, fac.*,
	afl.l_adres afl_adres,
	afl.l_postcode afl_postcode,
	afl.l_plaats afl_plaats
FROM bestellingen b
JOIN locaties fac
	ON b.b_factuurlocatie = fac.l_id
JOIN loacties afl
	ON b.b_afleverlocatie = afl.l_id



Wow als een zonnetje Ger!
Een klein vraagje, is er een bepaalde volgorde dat je de JOIN's moet doen in dit soort gevallen?

Je selecteer de <gekozen velden van alle tabellen zoals je wil met hun eigen naam> en records per -bestelling aka B
JOIN <tabel>
ON <waarde voor de join>
JOIN <tabel>
ON <waarde voor de join>
WHERE <enige WHERE clause per B/bestelling>

In ieder geval, enorm bedankt!

Reageren