Toon posts:

[SQL] Meedere LEFT JOINS

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste mensen,

Voor een query wil ik meerdere velden aan elkaar koppelen met LEFT JOINS. Ik heb de volgende query gemaakt:
PHP:
1
2
3
4
5
6
7
8
SELECT p.Merk, p.Product, c.Categorie, b.percentage
FROM prijslijst p

LEFT JOIN productcategorie c
ON p.categorieID=c.categorieID

LEFT JOIN btw b
ON p.btwcategorie=b.btwcategorie


Echter, zowel de Microsoft Jet Engine met een Acces 97 database als Microsoft Access 2000 geven een foutmelding met de mededeling dat er een fout in de syntax van de join zit.

Kan Access left joins op deze manier aan? of moet ik het anders aanpakken, met geneste joins?

  • AttiX
  • Registratie: Maart 2001
  • Laatst online: 17:50
Probeer het eens met LEFT OUTER JOIN.

Ben al aan het zoeken, kwam er net achter dat outer als extra kan ja :).

[ Voor 255% gewijzigd door AttiX op 30-05-2005 23:17 ]


Verwijderd

Topicstarter
Ja, dat kan ook. De tekst "OUTER" kun je toevoegen om te verduidelijken, maar is niet noodzakelijk.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Verwijderd schreef op maandag 30 mei 2005 @ 23:16:
Ja, dat kan ook. De tekst "OUTER" kun je toevoegen om te verduidelijken, maar is niet noodzakelijk.
Maar heb je het ook geprobeerd? ;)

Verder: zet eens blokhaken om alle tabel- en veldnamen heen, dat heeft in het verleden al een paar keer problemen opgelost voor me. Al heb ik allang niet meer met Access gewerkt. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Geeft hij ook aan wat hij vindt dat er mis is met de syntax want ik zie zo snel niks verkeerd maar meestal geeft hij wel een foutmelding waar je meer mee kan.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • foske
  • Registratie: Juli 2001
  • Laatst online: 09:13
Je syntax ziet er niet verkeerd uit, maar probeer het anders eerst met 1 tabel? dus eerst even zonder de btw tabel bijvoorbeeld. (access is ook lang geleden ;))

[ Voor 12% gewijzigd door foske op 30-05-2005 23:23 ]


Verwijderd

Topicstarter
-NMe- schreef op maandag 30 mei 2005 @ 23:19:
[...]

Maar heb je het ook geprobeerd? ;)

Verder: zet eens blokhaken om alle tabel- en veldnamen heen, dat heeft in het verleden al een paar keer problemen opgelost voor me. Al heb ik allang niet meer met Access gewerkt. :P
Ja, ook geprobeerd ;)

Met blokhaken bedoel je zoiets:?
PHP:
1
2
3
4
5
6
7
8
SELECT [p.Merk, p.Product, c.Categorie, b.percentage]
FROM [prijslijst p] 

LEFT OUTER JOIN [productcategorie c] 
ON [p.categorieID=c.categorieID] 

LEFT OUTER JOIN [btw b] 
ON [p.btwcategorie=b.btwcategorie]


In dat geval moet ik zeggen dat het helaas niet werkt...

  • Koppensneller
  • Registratie: April 2002
  • Laatst online: 14-02 20:05

Koppensneller

winterrrrrr

Ik denk meer zo:

PHP:
1
2
3
4
5
6
7
8
SELECT [p.Merk], [p.Product], [c.Categorie], [b.percentage]
FROM [prijslijst]

LEFT OUTER JOIN [productcategorie] c
ON [p.categorieID]=[c.categorieID] 

LEFT OUTER JOIN [btw b] 
ON [p.btwcategorie]=[b.btwcategorie]


:)

Verwijderd

Topicstarter
Fossie schreef op maandag 30 mei 2005 @ 23:23:
Je syntax ziet er niet verkeerd uit, maar probeer het anders eerst met 1 tabel? dus eerst even zonder de btw tabel bijvoorbeeld. (access is ook lang geleden ;))
Dat dacht ik ook! En met 1 tabel werkt hij prima. Ik krijg deze foutmelding:

The following error occurred:

Syntax error (missing operator) in query expression 'p.categorieID=c.categorieID

LEFT OUTER JOIN btw b
ON p.btwcategorie=b.btwcategorie'.
Number: 3075

Display the Data Access Errors Collection?

  • AttiX
  • Registratie: Maart 2001
  • Laatst online: 17:50
Als het alleen voor uitlezen is, kun je ook een View gebruiken.

Dus eerst een query maken met de 1e Join, en dan een 2e waarmee je de eerste query joined met de laatste tabel.

Ik denk dat de fout zit in de dubbele join.

Verwijderd

Topicstarter
Het is inderdaad alleen voor uitlezen. Bedankt voor je tip, ik zal het eens proberen

  • foske
  • Registratie: Juli 2001
  • Laatst online: 09:13
misschien dat dit je kan helpen:
http://www.mcse.ms/archive154-2004-4-627146.html

  • Coltrui
  • Registratie: Maart 2001
  • Niet online

Coltrui

iddqd

Probeer eens zo?

code:
1
2
3
4
5
SELECT p.Merk, p.Product, c.Categorie, b.percentage
FROM (prijslijst p LEFT JOIN productcategorie c
ON p.categorieID=c.categorieID)
LEFT JOIN btw b
ON p.btwcategorie=b.btwcategorie


edit: Ik moet eens op linkjes leren klikken; wat Fossie zegt dus :P

[ Voor 15% gewijzigd door Coltrui op 31-05-2005 07:54 ]


Verwijderd

Topicstarter
Coltrui schreef op dinsdag 31 mei 2005 @ 07:53:
Probeer eens zo?

code:
1
2
3
4
5
SELECT p.Merk, p.Product, c.Categorie, b.percentage
FROM (prijslijst p LEFT JOIN productcategorie c
ON p.categorieID=c.categorieID)
LEFT JOIN btw b
ON p.btwcategorie=b.btwcategorie


edit: Ik moet eens op linkjes leren klikken; wat Fossie zegt dus :P
_/-\o_ Mijn dank is zeer groot!!! Het werkt inderdaad. Nu alleen nog even proberen de query te begrijpen zodat ik ook een drie dubbele join kan maken :P

  • Serpie
  • Registratie: Maart 2005
  • Laatst online: 05-02 21:24
... Nu alleen nog even proberen de query te begrijpen zodat ik ook een drie dubbele join kan maken
Acces vereist altijd haakjes, SQL server kan ook prima omgaan zonder haakjes
Dus:
code:
1
2
3
4
5
SELECT p.Merk, p.Product, c.Categorie, b.percentage
FROM ((( prijslijst p 
LEFT JOIN productcategorie c ON p.categorieID=c.categorieID)
LEFT JOIN btw b ON p.btwcategorie=b.btwcategorie)
LEFT JOIN andereTabel a ON b.btwcategorie=a.btwcategorie)

Ik ben gewend om altijd elke join met een haakje te eindigen,
achter de from zet je voor elke join een haakje openen dan lukt het altijd.

[ Voor 11% gewijzigd door Serpie op 01-06-2005 08:56 ]


Verwijderd

Topicstarter
Aha, nu je het zo neer zet is het duidelijk hoe dat werkt met die haakjes. Ik heb echt lange tijd ermee zitten prutsen. Bedankt!! :)
Pagina: 1