[access/SQL] Left en Rigth Join kan niet?

Pagina: 1
Acties:

  • decramy
  • Registratie: December 2001
  • Laatst online: 22-05 07:45

decramy

root@birdie:~#

Topicstarter
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT 
    [cursisten].[naam], 
    [cursisten].[adres], 
    [cursisten].[postcode], 
    [cursisten].[woonplaats], 
    [cursussen].[datum], 
    [cursussen].[soort], 
    [cursussen].[prijs]
FROM 
    cursusdeelnemers 
        LEFT JOIN cursisten 
            ON [cursusdeelnemers].[cursist]=[cursisten].[id] 
        RIGHT JOIN cursussen 
            ON [cursusdeelnemers].[cursus]=[cursussen].[id]
WHERE 
    [cursusdeelnemers].[cursus]=[Welk CursusID?];
Hiermee zou ik dus een complete deelnemerslijst kunnen opvragen, maar hij geeft aan dat er een error in zit. Zodra ik de rechtse join er uit haal, is het gefixt...

Kan MS access 2000 zo`n query aan?

hier kun je zien hie de DB in elkaar zit...

[ Voor 9% gewijzigd door decramy op 08-06-2004 18:15 ]

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


Verwijderd

Wat is de error?

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 16:36
Je query kan op meerdere manieren opgevat worden. Probeer, als je deze wazige joins wilt blijven gebruiken, het eens met haakjes om "cursusdeelnemers ... =[cursisten].[id]"

Maar waarom gebruik je geen INNER JOINs?

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • decramy
  • Registratie: December 2001
  • Laatst online: 22-05 07:45

decramy

root@birdie:~#

Topicstarter
syntax fout (opperator ontbreekt) in query-expressie
[cursusdeelnemers].[cursist]=[cursisten].[id] RIGHT JOIN cursussen ON [cursusdeelnemers].[cursus]=[cursussen].[id]

hier kun je zien hie de DB in elkaar zit...

[ Voor 18% gewijzigd door decramy op 08-06-2004 18:17 ]

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • decramy
  • Registratie: December 2001
  • Laatst online: 22-05 07:45

decramy

root@birdie:~#

Topicstarter
nescafe schreef op 08 juni 2004 @ 18:06:
Je query kan op meerdere manieren opgevat worden. Probeer, als je deze wazige joins wilt blijven gebruiken, het eens met haakjes om "cursusdeelnemers ... =[cursisten].[id]"

Maar waarom gebruik je geen INNER JOINs?
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT 
    [cursisten].[naam], 
    [cursisten].[adres], 
    [cursisten].[postcode], 
    [cursisten].[woonplaats], 
    [cursussen].[datum], 
    [cursussen].[soort], 
    [cursussen].[prijs]
FROM 
    cursusdeelnemers 
        INNER JOIN cursisten 
            ON [cursusdeelnemers].[cursist]=[cursisten].[id] 
        INNER JOIN cursussen 
            ON [cursusdeelnemers].[cursus]=[cursussen].[id]
WHERE 
    [cursusdeelnemers].[cursus]=[Welk CursusID?];
geeft precies de zelfde fout

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 16:36
Ik probeer het hier ook en zie inderdaad dat access een andere volgorde verwacht (wat ie standaard ook doet met z'n query builder). Bovenstaande query zou het in sql server denk ik wel goed doen.

Onderstaande code misschien?
code:
1
2
3
4
5
6
FROM 
     cursisten
        INNER JOIN 
          (cursusdeelnemers INNER JOIN cursussen 
          ON [cursusdeelnemers].[cursus]=[cursussen].[id])
        ON [cursusdeelnemers].[cursist]=[cursisten].[id]

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Access heeft een hele vreeemde manier van haakjes toepassen. Het makkelijkst is om gewoon in de Query designer een query in elkaar te slepen en dan naar SQL weergave gaan en dat C/P-en.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 16:36
^^ met P_de_B

Ja, maar hoe heeft de TS deze query opgebouwd?
Ik zou in ieder geval niet om elk objectnaam blokhaken zetten.. Lijkt me wizardwerk..

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • decramy
  • Registratie: December 2001
  • Laatst online: 22-05 07:45

decramy

root@birdie:~#

Topicstarter
Nee, Access zet om ieder veld automagisch blokhaken 8)7 * decramy mopelt iets over ms en raar

edit:
Jippie hij werkt nu!
SQL:
1
2
3
SELECT cursisten.naam, cursisten.adres, cursisten.postcode, cursisten.woonplaats, cursussen.datum, cursussen.soort, cursussen.prijs
FROM cursisten INNER JOIN (cursusdeelnemers INNER JOIN cursussen ON cursusdeelnemers.cursus=cursussen.id) ON cursusdeelnemers.cursist=cursisten.id
WHERE cursusdeelnemers.cursus=[Welk CursusID?];


Het valt op dat de blokhaken zijn verdwenen... * decramy mompelt verder

[ Voor 79% gewijzigd door decramy op 09-06-2004 09:09 ]

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 16:36
Volgende vraag: wordt een cursus altijd door één trainer gegeven?

En om even verder te gaan.. Wordt een cursus maar op één moment gegeven? Of zou je graag meerdere data aangeven, met eventueel meerdere locaties..? :P

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • decramy
  • Registratie: December 2001
  • Laatst online: 22-05 07:45

decramy

root@birdie:~#

Topicstarter
nescafe schreef op 09 juni 2004 @ 09:38:
Volgende vraag: wordt een cursus altijd door één trainer gegeven?

En om even verder te gaan.. Wordt een cursus maar op één moment gegeven? Of zou je graag meerdere data aangeven, met eventueel meerdere locaties..? :P
ermja...
Das een goeie...

En hoe gaan we dat dan fixen?

Ik loop tegen nog een probleem op: Ik kan wel tabellen in een serie selecteren, maar hoe doe ik En de locatie EN de trainer selecteren?

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SELECT 
    cursisten.naam, 
    cursisten.adres, 
    cursisten.postcode, 
    cursisten.woonplaats, 
    cursussen.datum, 
    cursussen.soort, 
    cursussen.prijs, 
    locaties.naam, 
    locaties.adres, 
    locaties.plaats,
    trainers.naam,
    trainers.adres,
    trainers.woonplaats,
    trainers.telefoon
FROM 
    cursisten 
        INNER JOIN (cursusdeelnemers
            INNER JOIN (cursussen 
                    INNER JOIN locaties ON cursussen.locatie=locaties.id
                    INNER JOIN trainers ON cursussen.trainer=trainer.id )
                ON cursusdeelnemers.cursus=cursussen.id )
            ON cursusdeelnemers.cursist=cursisten.id
WHERE cursusdeelnemers.cursus=[Welk CursusID?];
zo,alleen dan met haakjes...

[ Voor 11% gewijzigd door decramy op 09-06-2004 09:57 ]

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 16:36
decramy schreef op 09 juni 2004 @ 09:49:
[...]

ermja...
Das een goeie...

En hoe gaan we dat dan fixen?
Je kunt hier dezelfde constructie gebruiken die je hebt toegepast tussen de tabellen cursussen en deelnemers. Zoek anders eens op m-n-relaties (i.t.t. 1-n-relaties)
Ik loop tegen nog een probleem op: Ik kan wel tabellen in een serie selecteren, maar hoe doe ik En de locatie EN de trainer selecteren?
[...]
Wat P_de_B heeft gezegd: Het makkelijkst is het om gebruik te maken van de query builder die in access zit gebakken. Deze zie je als je bijv. een query aanmaakt of er eentje opent in de "ontwerpweergave".

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • decramy
  • Registratie: December 2001
  • Laatst online: 22-05 07:45

decramy

root@birdie:~#

Topicstarter
nescafe schreef op 09 juni 2004 @ 09:54:
[...]
Wat P_de_B heeft gezegd: Het makkelijkst is het om gebruik te maken van de query builder die in access zit gebakken. Deze zie je als je bijv. een query aanmaakt of er eentje opent in de "ontwerpweergave".
Die doet het dus niet meer...
Als ikde ontwerpweergave open, krijg k meteen de SQL B) Access heeft wel door dat ik iets complex wil :P

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 16:36
decramy schreef op 09 juni 2004 @ 09:59:
[...]

Die doet het dus niet meer...
Als ikde ontwerpweergave open, krijg k meteen de SQL B) Access heeft wel door dat ik iets complex wil :P
Echt complex is een join van meerdere tabellen niet. Kun je niet eerst de query gebruiken die het goed doet (decramy in "[access/SQL] Left en Rigth Join kan niet...") en dan op het pijltje drukken naast het linkericoontje onder "Bestand" of "File" en dan ontwerpweergave proberen?

edit:
:w p_de_b

[ Voor 6% gewijzigd door nescafe op 09-06-2004 10:18 ]

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
decramy schreef op 09 juni 2004 @ 09:59:
[...]

Die doet het dus niet meer...
Als ikde ontwerpweergave open, krijg k meteen de SQL B) Access heeft wel door dat ik iets complex wil :P
Je kunt toch gewoon met het knopje linksboven omschakelen naar ontwerpweergave?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • decramy
  • Registratie: December 2001
  • Laatst online: 22-05 07:45

decramy

root@birdie:~#

Topicstarter
ik klik met m`n rechter muis knopje op de query, klik op ontwerpweergave (Groenig geodriehoek, geel potlood, lineaal) enik krijg SQL B)

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • decramy
  • Registratie: December 2001
  • Laatst online: 22-05 07:45

decramy

root@birdie:~#

Topicstarter
Nah,nieuwe query aangemaakt meteen vanuit de ontwerpweergave. Dit komt er uit:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
SELECT 
    cursisten.naam, 
    cursisten.adres, 
    cursisten.postcode, 
    cursisten.woonplaats, 
    cursisten.telefoon, 
    cursussen.datum, 
    cursussen.soort, 
    cursussen.prijs, 
    locaties.naam, 
    locaties.adres, 
    locaties.plaats, 
    trainers.naam, 
    trainers.woonplaats, 
    trainers.telefoon, 
    cursussen.id
FROM 
    trainers 
    INNER JOIN (locaties 
            INNER JOIN (cursussen 
                        INNER JOIN (cursusdeelnemers 
                                LEFT JOIN cursisten ON cursusdeelnemers.cursist = cursisten.id) 
                            ON cursussen.id = cursusdeelnemers.cursus) 
                ON locaties.id = cursussen.locatie) 
        ON trainers.id = cursussen.trainer
WHERE (((cursussen.id)=[Welk CursusID?]));

Hij gaat uit van de trainers :?

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 16:36
Ik neem aan dat het werkt zo.. :?

Dan moet je er niet teveel over nadenken :P
Hij gaat niet echt uit van trainers. De tabelvolgorde kan willekeurig gekozen worden.

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • decramy
  • Registratie: December 2001
  • Laatst online: 22-05 07:45

decramy

root@birdie:~#

Topicstarter
Erm ja...
hij werkt B) Vraag alleen niet hoe. K snap er de ballen van maar OK

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 16:36
't is niet zo heel moeilijk om te begrijpen. er staat stuk voor stuk weer tabellen:
(cursusdeelnemers LEFT JOIN cursisten ON cursusdeelnemers.cursist = cursisten.id) is op zich een tabel die je weer kunt joinen met cursussen:

(cursussen INNER JOIN (cursusdeelnemers LEFT JOIN cursisten ON cursusdeelnemers.cursist = cursisten.id) ON cursussen.id = cursusdeelnemers.cursus) ON locaties.id = cursussen.locatie

Wat is nu de moraal van dit verhaal? Gebruik gewoon de query builder :P

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans

Pagina: 1