Toon posts:

[SQL]Multiple joins

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende 'probleem'.

Ik probeer uit een tabel waar een UserID en een TeamID staat. Ik heb via een LEFT JOIN de Teamnaam kunnen achterhalen. Nu wil ik echter ook de Username achterhalen uit de tabel Users. Ik zou dus een dubbele left join uit moeten voeren, maar ik zou niet weten hoe.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT 
     tblVerslagen.strKop
     tblVerslagen.intVerslagID 
     tblVerslagen.intUserID
     tblVerslagen.intTeamID
     tblTeams.intTeamID
     tblTeams.strTeam 
FROM 
     tblVerslagen 
LEFT JOIN 
     tblTeams 
ON 
     tblVerslagen.intTeamID = tblTeams.intTeamID

Nu heb ik de teamnaam geselecteerd die in de andere tabel staat.
Ik heb echter een UserID die bij een Username hoort die ook weer uit een andere tabel komt. Een tweede Left Join erachter plakken werkt niet. Heb veel gezocht, niet gevonden wat ik zocht.

Ik zat te denken dat het zo kon, maar dat werkte dus niet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT 
     tblVerslagen.strKop
     tblVerslagen.intVerslagID 
     tblVerslagen.intUserID
     tblVerslagen.intTeamID
     tblTeams.intTeamID
     tblTeams.strTeam
     tblUsers.intUserID
     tblUsers.strUsername
FROM 
     tblVerslagen 
LEFT JOIN 
     tblTeams 
ON 
     tblVerslagen.intTeamID = tblTeams.intTeamID
LEFT JOIN 
     tblUsers
ON 
     tblVerslagen.intUserID = tblUsers.intUserID

Wat doe ik fout?

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
klik hier en gebruik USING

Verwijderd

Topicstarter
Ja, daar was ik dus al geweest, maar kon niet direct mijn probleem oplossen.

Ik ga even kijken wat ik met USING kan, thx!

  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Ik weet niet of je hier iets aan hebt, maar in MS Access werkt het als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT 
     tblVerslagen.strKop
     tblVerslagen.intVerslagID 
     tblVerslagen.intUserID
     tblVerslagen.intTeamID
     tblTeams.intTeamID
     tblTeams.strTeam
     tblUsers.intUserID
     tblUsers.strUsername
FROM 
     ( tblVerslagen LEFT JOIN tblTeams 
          ON 
         tblVerslagen.intTeamID = tblTeams.intTeamID )
LEFT JOIN 
     tblUsers
ON 
     tblVerslagen.intUserID = tblUsers.intUserID

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
dat zijn trouwens subselects, kweet niet of mysql dat wel ondersteund, dacht het niet...

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op maandag 29 april 2002 21:23 schreef /dev/null het volgende:
dat zijn trouwens subselects, kweet niet of mysql dat wel ondersteund, dacht het niet...
Uhm, nee dus. De haakjes zal mysql niet slikken lijkt me, maar verder is het een doodnormale join.

Wat werkt er eigenlijk niet? Foutmelding? Of krijg je niet de data terug die je wil?
Weet je bijvoorbeeld wel zeker dat je LEFT JOINS wil en niet INNER JOINS?

p.s. ik neem aan dat het gebrek aan komma's in je query gewoon een tikfoutje is?

Today's subliminal thought is:


  • SJR
  • Registratie: Januari 2000
  • Laatst online: 15-02 13:58

SJR

Misschien dat je er wat aan hebt, dit is een multiple join die ik laatst nodig had.
code:
1
2
3
4
5
6
7
8
select sF.specificationFieldID, sF.name, p_sF.value, sF.unit
                           from productGroup_specificationField as pG_sF
                           left join product_specificationField as p_sF
                           on p_sF.specificationFieldID=pG_sF.specificationFieldID
                           and p_sF.productID='$this->productID'
                           left join specificationField as sF
                           on sF.specificationFieldID=pG_sF.specificationFieldID
                           where pG_sF.productGroupID='$this->productGroupID' order by pG_sF.sort

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:42
code:
1
2
3
4
SELECT *
FROM table1, table2, table3
WHERE table1.id = table2.id
AND   table2.id = table3.fk

zo kan je ook een join schrijven zonder die ergerlijke 'INNER JOIN'/'LEFT JOIN' ed syntax toe te passen.

https://fgheysels.github.io/


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op dinsdag 30 april 2002 11:38 schreef whoami het volgende:
zo kan je ook een join schrijven zonder die ergerlijke 'INNER JOIN'/'LEFT JOIN' ed syntax toe te passen.
Oei, echte SQL :P

Je weet dat je tegen een bierkaai vecht he? Mensen willen niet luisteren naar dingen die over het algemeen makkelijker zijn om dingen op te lossen. Immers als je expliciet een Left join voor elke query kan gebruiken ben je beter omdat je het kunt.

:Y) *D

ps: Ik heb het persoonlijk opgegeven bij mensen om ze te overtuigen dat left join een stuk minder vaak gebruikt moet worden dan dat de meeste mensen denken.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:42
Op dinsdag 30 april 2002 11:55 schreef dusty het volgende:

[..]

Oei, echte SQL :P

Je weet dat je tegen een bierkaai vecht he? Mensen willen niet luisteren naar dingen die over het algemeen makkelijker zijn om dingen op te lossen. Immers als je expliciet een Left join voor elke query kan gebruiken ben je beter omdat je het kunt.

:Y) *D
't Goh, het heeft wel wat; idealisme.
ps: Ik heb het persoonlijk opgegeven bij mensen om ze te overtuigen dat left join een stuk minder vaak gebruikt moet worden dan dat de meeste mensen denken.
Ik heb altijd veronderstelt dat die 'LEFT JOIN' syntax enzo niet bij alle DBMS'en werkt. Is dat eigenlijk zo?

https://fgheysels.github.io/

Pagina: 1