Toon posts:

[SQL]Join hulp gevraagd

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hai mensen, ik heb een voetbalmanager gemaakt, maar ik krijg de belangrijkste query niet in orde : een overzicht van alle deelnemers en hun team met spelers en de daarbij behorende naam, logo en punten

Tabel deelnemers:

naam : Jan
speler1 :127
speler2 :201

Tabel spelers :

id:127
naam:Tahamata
logo:Ajax.gif
punten :6

id:201
naam:Jeliazkov
logo:Feyenoord.gif
punten:4

Output moet zijn : Jan Tahamata Ajax.gif 6 Jeliazkov Feyenoord.gif 4

Ik kom er met WHERE -clauses niet uit.
IK hoop dat iemand mij kan helpen want ik heb er een gigantische bak werk in zitten.

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Als het aantal spelers per deelnemer vast is dan ken je in een recordset alle benodigde details opvragen. Wat je dan moet doen is voor elke speler een alias maken voor de tabel met spelergegevens en die alias joinen op dat spelerid.

Als het aantal spelers variabel is dan zul je een grote lijst met spelers moeten opvragen en die in je script netjes onder elke deelnemer moeten hangen, of je moet het statement opsplitsten in twee delen, een waar je deelnemer gegevens opvraagt en dan per deelnemer de spelers.

Verwijderd

Topicstarter
Hey bedankt.
Je bedoelt zoiets als SELECT speler1 AS a , speler2 AS a FROM deelnemers WHERE (dit begrijp ik dus niet)=spelers.id

Zit ik op het goede spoor?
:)

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:10
Ehm, ja.
Gewoon joinen dus:
code:
1
2
3
SELECT tabel1.naam, tabel2.anderveld
FROM tabel1, tabel2
WHERE tabel1.id = tabel2.overeenkomstig_id


Dit is eigenlijk redelijk basic SQL kennis die je in iedere tutorial terugvind.

http://www.w3schools.com/sql/default.asp

[ Voor 9% gewijzigd door whoami op 14-11-2003 08:44 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
Dat zou werken als ik van 1 speler uit mijn deelnemerstabel de gegevens uit de spelerstabel moet hebben.
Er staan echter 2 spelers.
Misschien ben ik dom maar volgens mij heb je niet begrepen wat ik in mijn query wil.

  • watzie
  • Registratie: Juni 2001
  • Laatst online: 07-07 16:26
SELECT
deelnemers.naam,
spelers1.naam,
spelers1.logo,
spelers1.punten,
spelers2.naam,
spelers2.logo,
spelers2.punten
FROM
deelnemers,
spelers spelers1,
spelers spelers2
WHERE
deelnemers.speler1 = spelers1.id AND
deelnemers.speler2 = spelers2.id

je wilt vanuit 1 tabel (namelijk deelnemers) twee keer op dezelfde andere tabel joinen. Dus moet je die tabel twee keer noemen in je FROM met twee verschillende namen (spelers1 en spelers2). Nu lukt de join dus wel.

succes

  • Dielie
  • Registratie: Februari 2001
  • Laatst online: 14:36

Dielie

*BURP!*

Watzie heeft helemaal gelijk. De query builder van Access geeft nagenoeg hetzelfde:

SELECT Deelnemers.Naam, Spelers.Naam, Spelers.Logo, Spelers.Punten, Spelers_1.Naam, Spelers_1.Logo, Spelers_1.Punten
FROM (Deelnemers INNER JOIN Spelers ON Deelnemers.Speler1 = Spelers.ID) INNER JOIN Spelers AS Spelers_1 ON Deelnemers.Speler2 = Spelers_1.ID;

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:10
Verwijderd schreef op 14 november 2003 @ 08:51:
Dat zou werken als ik van 1 speler uit mijn deelnemerstabel de gegevens uit de spelerstabel moet hebben.
Er staan echter 2 spelers.
Misschien ben ik dom maar volgens mij heb je niet begrepen wat ik in mijn query wil.
Je datamodel is niet goed.
Je moet de spelerid's niet in je deelnemerstabel hebben, maar in een andere tabel.
Misschien kan je dit eens lezen

[ Voor 7% gewijzigd door whoami op 14-11-2003 09:08 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
Hartelijk dank mensen.
Misschien heb ik het inderdaad niet slim opgezet.
De queries van watzie en Dielie werken echter voor mij.
Ik ben erg blij nu.
_/-\o_

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:10
Ik raad je toch aan om je datamodel aan te passen.
Anders kom je er vroeg of laat mee in de problemen.

https://fgheysels.github.io/

Pagina: 1