Toon posts:

[SQL] Inner join syntax*

Pagina: 1
Acties:

Verwijderd

Topicstarter
eeey

Ik ben nog steeds druk bezig met een school site maar ik loop op een paar dingen vast.
Ik moet een systeempje maken dat de stage cijfers registreert en bewerkt etc. Dus wanneer je als gebruiker inlogt moet je zien welke opdrachten je moet doen en dat had ik werkend via een opleidingsid maar er moet nu nog een tabel tussen met daarin klasnamen gekoppeld aan die opleidingsid's
Zo had ik het eerst werkend:
ASP:
1
strSQL = "select deelkwalificaties.naam, [Opleiding/Deel].Deelnr, [Opleiding/Deel].Opleidingid  FROM (((Leerlingen INNER JOIN Opleidingen ON (Leerlingen.OpleidingsID = Opleidingen.OpleidingsID)) INNER JOIN [Opleiding/Deel] ON ([Opleiding/Deel].OpleidingID = Opleidingen.OpleidingsID)) INNER JOIN [Deelkwalificaties] ON ([Opleiding/Deel].Deelnr = Deelkwalificaties.Deelnr)) WHERE Leerlingen.Leerlingnr= '" & USname & "' ORDER BY [Opleiding/Deel].Deelnr "

Nu heb ik geprobeerd op er een tabel in te zetten klas/opleiding maar wanneer ik dat doe krijg ik de hele tijd een foutmelding
ASP:
1
strSQL = "select deelkwalificaties.naam, [Opleiding/Deel].Deelnr, [Opleiding/Deel].Opleidingid  FROM ((((Leerlingen INNER JOIN [klas/opleiding] ON ([klas/opleiding] = leerlingen.klas)) INNER JOIN opleidingen ON (opleidingen.OpleidingID = [klas/opleiding].OpleidingsID))INNER JOIN [Opleiding/Deel] ON ([Opleiding/Deel].OpleidingID = Opleidingen.OpleidingsID)) INNER JOIN [Deelkwalificaties] ON ([Opleiding/Deel].Deelnr = Deelkwalificaties.Deelnr)) WHERE Leerlingen.Leerlingnr= '" & USname & "' ORDER BY [Opleiding/Deel].Deelnr "

Weet iemand de oplossing

Alvast bedankt voor de reply

Verwijderd

ASP heeft niets te maken met de syntax van joins. Het is namelijk de database die daar voor zorgt. Dus zoek eens in de documentatie van de gebruikte database ( die je niet noemt, zodat we je daar niet mee kunnen helpen )

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:33
Hoi

Nee, de oplossing kunnen wij niet weten omdat je:
a) de foutmelding niet geeft
b) jouw queries vrijwel onleesbaar zijn. Ik heb geen zin om de hele tijd te scrollen om die query te kunnen lezen.

Daarnaast zou ik eens beginnen om die slashen uit m'n tabelnamen te halen, en overbodige haakjes te verwijderen.

Nu komt jouw post trouwens ook over als: hoi, het werkt niet, los het ff voor me op; maar zo werkt het hier niet. Zoals ik al gezegd heb, geef je zowiezo te weinig informatie, dus, pas je post ff aan.

Jouw probleem heeft trouwens ook niets met asp te maken, maar met sql, dus ik pas je titel ook maar ff aan.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Het gaat om een Acces database ,maar het enige wat ik heb gedaan is er een tabel tussen gezet om daarin in te zetten welke klas bij welke opleiding hoort
Maar op de 1 of andere manier pakt die mijn sql string niet
http://tinypic.com/i70sxs.jpg
Is een afbeelding van de relatie die er zijn
Hoop dat je snapt wat ik bedoel

Gr Vroem

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:33
Nogmaals:
Welke ERROR krijg je

https://fgheysels.github.io/


Verwijderd

Topicstarter
sorry was nog bezig met bericht.
Soort fout:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-stuurprogramma] Deze join-expressie wordt niet ondersteund.
/pages/main.asp, line 143

Verwijderd

Topicstarter
bij de bovenste sql string werkte het allemaal wel maar daaar had ik nog geen tabel klas/opleidin.
Die moest ik er later bijzetten van school omdat dat makkelijker zou zijn. Nu heb ik dat gedaan en bij de onderste sql string die tabel erin gezet maar nu werkt het niet meer
Deze fout heb ik nu

Soort fout:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-stuurprogramma] Er zijn te weinig parameters. Het verwachte aantal is: 1.
/pages/main.asp, line 143

Dit heb ik nu snap niet wat ik fout doe
ASP:
1
strSQL = "select deelkwalificaties.naam, [Opleiding/Deel].Deelnr, [Opleiding/Deel].Opleidingid  FROM ((((Leerlingen INNER JOIN [klas/opleiding] ON ([klas/opleiding].klas = leerlingen.klas)) INNER JOIN opleidingen ON (opleidingen.OpleidingID = [klas/opleiding].OpleidingsID))INNER JOIN [Opleiding/Deel] ON ([Opleiding/Deel].OpleidingID = Opleidingen.OpleidingsID)) INNER JOIN [Deelkwalificaties] ON ([Opleiding/Deel].Deelnr = Deelkwalificaties.Deelnr)) WHERE Leerlingen.Leerlingnr= '" & USname & "' ORDER BY [Opleiding/Deel].Deelnr "

[ Voor 68% gewijzigd door Verwijderd op 06-12-2005 11:01 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 21-04 12:01

curry684

left part of the evil twins

Sorry maar ik ga die queries niet lezen totdat je er een paar enters in zet :)

Tip: strip het ASP deel, gebruik [code=sql] en formatteer je code zo:
SQL:
1
2
3
4
5
SELECT fieldA, fieldB
FROM tableA
JOIN tableB ON primarykeyB = foreignkeyA
WHERE condition = true
ORDER BY fieldA;

Professionele website nodig?


Verwijderd

Verwijderd schreef op dinsdag 06 december 2005 @ 10:52:
bij de bovenste sql string werkte het allemaal wel maar daaar had ik nog geen tabel klas/opleidin.
Die moest ik er later bijzetten van school omdat dat makkelijker zou zijn. Nu heb ik dat gedaan en bij de onderste sql string die tabel erin gezet maar nu werkt het niet meer
Deze fout heb ik nu

Soort fout:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-stuurprogramma] Er zijn te weinig parameters. Het verwachte aantal is: 1.
/pages/main.asp, line 143

Dit heb ik nu snap niet wat ik fout doe
ASP:
1
strSQL = "select deelkwalificaties.naam, [Opleiding/Deel].Deelnr, [Opleiding/Deel].Opleidingid  FROM ((((Leerlingen INNER JOIN [klas/opleiding] ON ([klas/opleiding].klas = leerlingen.klas)) INNER JOIN opleidingen ON (opleidingen.OpleidingID = [klas/opleiding].OpleidingsID))INNER JOIN [Opleiding/Deel] ON ([Opleiding/Deel].OpleidingID = Opleidingen.OpleidingsID)) INNER JOIN [Deelkwalificaties] ON ([Opleiding/Deel].Deelnr = Deelkwalificaties.Deelnr)) WHERE Leerlingen.Leerlingnr= '" & USname & "' ORDER BY [Opleiding/Deel].Deelnr "
1) Die foutmelding krijg je meestal wanneer je een niet bestaand veld in je SQL hebt staan, of een tikfout hebt gemaakt in de naam.

2) controleer de output van de regel die je SQL opbouwt door deze even met een response.write (strSQL ) direct naar het scherm te schrijven, dan kun je beter zien wat er uitgevoerd gaat worden.

3) De beste manier om Queries voor access te maken is in Access zelf, en dan het statement te kopieren naar VB/ASP

4) Formatteer a.u.b. de volgende keer je code een beetje, in plaats van er een laaaaaaaaange regel van te maken. (tip, gebruik hiervoor ook het statement dat je maakt door middel van de tip in punt 2 )

offtopic:
Mocht ik me te veel als een modje gedragen, dan hierbij mijn excuses

[ Voor 4% gewijzigd door Verwijderd op 06-12-2005 11:08 ]


Verwijderd

Topicstarter
Hij werkt alweer er zaten idd een paar type foutjes in:S
In ieder geval bedankt voor de Reply's

Gr Vroem

Verwijderd

oftewel de TS is te lui om zelf fatsoenlijk te debuggen. Niet zo vreemd als ie zijn query's als lange zin schrijft ipv netjes op te delen ;)

Dergelijke replies zijn nu ook weer niet nodig.

[ Voor 20% gewijzigd door whoami op 06-12-2005 12:48 ]

Pagina: 1