[sql / MS Access] dubbele innerjoin *

Pagina: 1
Acties:
  • 113 views sinds 30-01-2008
  • Reageer

  • marc1982
  • Registratie: Oktober 2002
  • Laatst online: 24-04 20:35
ik moet voor school sql leren, dit doen we in access

ga in dit topic alsjeblieft niet opmerkingen maken van :

microsoft zuigt !!
gebruik oracle of db2 of whatever.

daar gaat het namelijk niet om.

ik moet een bepaalde uitvoer zien te krijgen uit een access db door middel van sql.

dit is de vraag waar ik nu mee zit (komen later misschien nog meer)

'Geef de studentnaam, studienaam en studieplaats van alle studenten die niet studeren in Den Haag.'

ik heb een aantal tabbelen, voor deze vraag zijn relevant:

- student (id, naam, woonplaats, studiepartner, beurs, studie)
- studie (code, studie, plaats)
- plaats (code, plaatsnaam)

nu moet ik hiervoor "inner join" gebruiken,

ik heb nu dit :

<code>
SELECT student.naam, studie.studie, plaats.plaatsnaam
from
student inner join studie on student.studie = studie.code'
</code>

nu moet er nog een inner join bij, namelijk zoiets :

studie inner join plaats on studie.plaats = plaats.code

heeft iemand een idee hoe ik zo'n 2e innerjoin maak?

  • whoami
  • Registratie: December 2000
  • Nu online
code:
1
2
3
4
select * 
from tabel
inner join tabel2 on ...
inner join tabel3 on ...

of
select *
from tabel, tabel2, tabel3
Where tabel.id = tabel2.fk_id and tabel2.id = tabel3.fk_id[/code]

https://fgheysels.github.io/


Verwijderd

volgens mij bedoel je een triple join

maar mij ontgaat eigenlijk waarom je - - plaats (code, plaatsnaam) -- nodig hebt, omdat code nergens anders ook staat, en dat in je studie/student keurig netjes die plaatsnaam al (zou moeten) staan

  • marc1982
  • Registratie: Oktober 2002
  • Laatst online: 24-04 20:35
ff voor de duidelijkheid

query 1

SElect studie.studie, plaats.plaatsnaam

from studie inner join plaats on studie.plaats = plaats.code

uitvoer

Afbeeldingslocatie: http://picserver.org/view_image.php/6FGOG3F4OT32/picserver.jpeg


query 2

SELECT student.naam, studie.studie

from student inner join studie on student.studie = studie.code

uitvoer

Afbeeldingslocatie: http://picserver.org/view_image.php/39VD2UJBY676/picserver.jpeg

deze wil ik dus in 1 query hebben, bovenstaande werken allebij los
maar wil ze hebben allebei een inner join nodig..

[ Voor 27% gewijzigd door marc1982 op 21-10-2004 15:52 ]


  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 20-05 23:24
marc1982 schreef op 21 oktober 2004 @ 15:39:
query 1

SElect studie.studie, plaats.plaatsnaam

from studie inner join plaats on studie.plaats = plaats.code
en
marc1982 schreef op 21 oktober 2004 @ 15:39:
query 2

SELECT student.naam, studie.studie

from student inner join studie on student.studie = studie.code
combineren?

SQL:
1
2
3
4
SElect studie.studie, plaats.plaatsnaam, student.naam
from studie 
inner join plaats on studie.plaats = plaats.code
inner join studie  on student.studie = studie.code 

  • marc1982
  • Registratie: Oktober 2002
  • Laatst online: 24-04 20:35
jvdmeer schreef op 21 oktober 2004 @ 16:16:
[...]

en

[...]


combineren?

SQL:
1
2
3
4
SElect studie.studie, plaats.plaatsnaam, student.naam
from studie 
inner join plaats on studie.plaats = plaats.code
inner join studie  on student.studie = studie.code 
Afbeeldingslocatie: http://picserver.student.utwente.nl/view_image.php/Q69896T46QQG/p.jpeg

copy paste

maar doet het dus niet..

ook niet met een ' , ' er tussen ofzo

[ Voor 10% gewijzigd door marc1982 op 21-10-2004 16:35 ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
inner join studie
moet volgens mij
inner join student
zijn.

  • marc1982
  • Registratie: Oktober 2002
  • Laatst online: 24-04 20:35
bigbeng schreef op 21 oktober 2004 @ 16:37:
inner join studie
moet volgens mij
inner join student
zijn.
ja denk het ook,
anders join je met zelfde tabel en is hier niet de bedoeling

maar foutmelding blijft..

frustrerend met zoiets bezig zijn..

  • BitByter
  • Registratie: Juli 1999
  • Laatst online: 09-05 13:37

BitByter

Prutst dit forum

maak 'm met de wizard van access :)
je selecteerd hoe je het wil, en de sql code word uitgepoept :)
zo ben ik ook door me opleiding gekomen ;)

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Even een kort uitstapje voor je gemaakt naar de Access helpfile:
Tevens is het mogelijk met de volgende syntaxis instructies met JOIN te nesten:

SELECT velden
FROM tabel1 INNER JOIN
(tabel2 INNER JOIN [( ]tabel3
[INNER JOIN [( ]tabelx [INNER JOIN ...)]
ON tabel3.veld3 vergopr tabelx.veldx)]
ON tabel2.veld2 vergopr tabel3.veld3)
ON tabel1.veld1 vergopr tabel2.veld2;
Het lijkt dus iets met haakjes te zijn...

Dit kun je vinden in het onderdeel Microsoft Jet SQL Reference.

  • marc1982
  • Registratie: Oktober 2002
  • Laatst online: 24-04 20:35
BitByter schreef op 21 oktober 2004 @ 16:44:
maak 'm met de wizard van access :)
je selecteerd hoe je het wil, en de sql code word uitgepoept :)
zo ben ik ook door me opleiding gekomen ;)
HAHAHAHA

wat een wereld tip

dit is de uitvoer mensen:

SELECT student.naam, studie.studie, plaats.plaatsnaam
FROM (plaats INNER JOIN studie ON plaats.code = studie.plaats) INNER JOIN student ON studie.code = student.studie;

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 15:28
acces wil meerdere joins op de een of andere manier "gegroepeerd" met haken hebben ofzo, slaat helemaal nergens op. Ik kwam er zelf ook nooit uit zonder de wizard. Is ook een van de redenen dat acces ruk is vind ik.

Roomba E5 te koop


  • marc1982
  • Registratie: Oktober 2002
  • Laatst online: 24-04 20:35
nieuw probleempje...

niet op te lossen met de wizzard

volgende query

SELECT A.naam AS studentnaam, B.naam AS partner,plaats.plaatsnaam, plaats.plaatsnaam
from plaats inner join(student AS A inner join student AS B on a.studiepartner = b.id) on a.woonplaats = plaats.code

het gaat om de tabel student :

Afbeeldingslocatie: http://picserver.student.utwente.nl/view_image.php/7TDCA67I08V6/p.jpeg

het is de bedoeling om weer te geven:
van elke student
- naam
-woonplaats
-studie partner
- studiepartner woonplaats

met bovenstaande query krijg ik wel van de student de woonplaats (komt omdat er staat "on a.woonplaats = plaats.code") , maar niet de woonplaats van de studiepartner.

ik heb al geprobeerd :

"on *.woonplaats = plaats.code"

en

" on a.woonplaats = plaats.code or b.woonplaats = plaats.code"

iemand aanvullingen?

[ Voor 3% gewijzigd door marc1982 op 22-10-2004 10:12 ]


  • marc1982
  • Registratie: Oktober 2002
  • Laatst online: 24-04 20:35
voor de duidelijkheid eventjes deze query:

SELECT A.naam AS studentnaam, B.naam AS partner, a.woonplaats, b.woonplaats
from plaats inner join(student AS A inner join student AS B on a.studiepartner = b.id) on a.woonplaats = plaats.code


met uitvoer:

Afbeeldingslocatie: http://picserver.org/view_image.php/D4AA5VKC9614/picserver.jpeg

[ Voor 31% gewijzigd door marc1982 op 22-10-2004 10:16 ]


  • marc1982
  • Registratie: Oktober 2002
  • Laatst online: 24-04 20:35
*schopje*

iemand?
Modbreak:Schoppen van een topic is pas toegestaan na 24 uur :)

[ Voor 67% gewijzigd door gorgi_19 op 22-10-2004 19:04 ]


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 15:28
De resultaten zijn toch goed?
- naam
-woonplaats
-studie partner
- studiepartner woonplaats
Ik zie ze allevier staan...

Edit: O wacht, dit zijn nog de afkortingen zeker?
probeer deze eens anders:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT 
S1.naam,
 P1.naam,
 S2.naam, 
P2.naam  
FROM
 ((Student S1 
INNER JOIN 
Student S2 
ON 
S1.partner = S2.id) 
INNER JOIN 
Plaats P1 
ON 
S1.woonplaats = P1.id) 
INNER JOIN 
Plaats P2 
ON 
S2.woonplaats = P2.id


En het wordt trouwens als niet netjes gezien om binnen 24 uur te kicken...

[ Voor 79% gewijzigd door sig69 op 22-10-2004 14:44 ]

Roomba E5 te koop


  • marc1982
  • Registratie: Oktober 2002
  • Laatst online: 24-04 20:35
sig69 schreef op 22 oktober 2004 @ 14:40:
De resultaten zijn toch goed?

[...]

Ik zie ze allevier staan...

Edit: O wacht, dit zijn nog de afkortingen zeker?
probeer deze eens anders:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT 
S1.naam,
 P1.naam,
 S2.naam, 
P2.naam  
FROM
 ((Student S1 
INNER JOIN 
Student S2 
ON 
S1.partner = S2.id) 
INNER JOIN 
Plaats P1 
ON 
S1.woonplaats = P1.id) 
INNER JOIN 
Plaats P2 
ON 
S2.woonplaats = P2.id


En het wordt trouwens als niet netjes gezien om binnen 24 uur te kicken...
het zijn inderdaad afkortingen ja
en bij copy/paste van jouw code

vraagt ie voor elke (dus p1.naam, p2.naam enz enz) een waarde...
doet het dus niet...

ga er nog even mee puzzelen..

als iemand nog wat weet.. heel graag..

en zal voortaan langer wachten met schopjes geven :)

  • marc1982
  • Registratie: Oktober 2002
  • Laatst online: 24-04 20:35
ok,

nog wat gepuzzeld, niet alle waardes achter de . klopte

moest bijv niet p1.naam zijn maar p1.plaatsnaam,

maar kon je ook niet weten,

hardstikke bedankt he !! :) :)

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 15:28
Nou ja, kon ik wel weten. Was het alleen vergeten te melden.. :X

O ja, als in je eigen topic reageert en de laatste post is van jezelf, kan je beter de edit knop( Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif ) gebruiken, anders kan het ook nog wel eens als kick gezien worden..

Roomba E5 te koop

Pagina: 1