Toon posts:

[SQL/Oracle] Create view uit 3 tabellen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem met mijn volgende query:

SQL:
1
2
3
4
5
SELECT uitvoeringen.cursus, uitvoeringen.begindatum, uitvoeringen.docent, uitvoeringen.locatie,
cursussen.omschrijving, medewerkers.naam
FROM uitvoeringen, cursussen, medewerkers
WHERE uitvoeringen.cursus = cursussen.code
AND uitvoeringen.docent = medewerkers.mnr

na uitvoer krijg ik het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
CURSUS, BEGINDATUM, DOCENT, LOCATIE, OMSCHRIJVING, NAAM

S02 16-APR-95 7902 DE MEERN   Introductie SQL en SQL*Plus      SPIJKER 
S02 08-OCT-95 7369 MAASTRICHT Introductie SQL en SQL*Plus      SMIT    
S02 17-DEC-95 7369 DE MEERN   Introductie SQL en SQL*Plus      SMIT    
OAG 10-AUG-95 7566 UTRECHT    Oracle voor ApplicatieGebruikers JANSEN  
OAG 27-SEP-96 7902 DE MEERN   Oracle voor ApplicatieGebruikers SPIJKER 
FOR 17-DEC-95 7566 MAASTRICHT Applicatiebouw met Oracle Forms  JANSEN  
FOR 05-FEB-96 7876 DE MEERN   Applicatiebouw met Oracle Forms  ADAMS   
PLS 11-SEP-96 7788 DE MEERN   Introductie PL/SQL               SCHOTTEN
REP 04-FEB-96 7369 DE MEERN   Bouwen met Oracle Reports        SMIT    
RSO 24-FEB-97 7788 UTRECHT    Relationeel SysteemOntwerp       SCHOTTEN


mijn bedoeling is dat deze query hetzelfde geeft als SELECT * FROM uitvoeringen;
plus als extra een kolom met de cursussen.omschrijving en een kolom met medewerkers.naam

bij het uitvoeren van SELECT * FROM uitvoeringen; is dit het resultaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CURSUS, BEGINDATUM, DOCENT, LOCATIE
S02 16-APR-95 7902 DE MEERN  
S02 08-OCT-95 7369 MAASTRICHT
S02 17-DEC-95 7369 DE MEERN  
OAG 10-AUG-95 7566 UTRECHT   
OAG 27-SEP-96 7902 DE MEERN  
FOR 17-DEC-95 7566 MAASTRICHT
FOR 05-FEB-96 7876 DE MEERN  
PLS 11-SEP-96 7788 DE MEERN  
REP 04-FEB-96 7369 DE MEERN  
REP 18-SEP-96      MAASTRICHT
ERM 13-JAN-97                
SOD 17-FEB-97      DE MEERN  
RSO 24-FEB-97 7788 UTRECHT


Zoals je kunt zien heeft deze 3 resultaten extra, dit omdat de statement uitvoeringen.docent = medewerkers.mnr niet overeen komt.

Hoe maak ik de query nu zo, dat deze toch alle 13 laat zien, en bij de records waar docent leeg de het veld medewerkers.naam ook leeg blijft.

De tabellen zien er dus zo uit:
code:
1
2
3
medewerkers(MNR, NAAM, VOORL, FUNCTIE, CHEF, GBDATUM, MAANDSAL, COMM, AFD)
cursussen(CODE, OMSCHRIJVING, TYPE, LENGTE)
uitvoeringen(CURSUS, BEGINDATUM, DOCENT, LOCATIE)

Zoals je kunt zien is uitvoeringen.cursus een foreign key van cursussen.code en
uitvoeringen.docent van medewerkers.mnr

Na een paar uur met mn klasgenoot hiermee zitten prutsen zag ik het niet meer zitten :)

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Wat jij zoekt is een outer join:
SQL:
1
2
3
4
5
SELECT uitvoeringen.cursus, uitvoeringen.begindatum, uitvoeringen.docent, uitvoeringen.locatie,
cursussen.omschrijving, medewerkers.naam
FROM uitvoeringen, cursussen, medewerkers
WHERE uitvoeringen.cursus = cursussen.code
AND uitvoeringen.docent = medewerkers.mnr (+)

Who is John Galt?


Verwijderd

Topicstarter
justmental schreef op donderdag 21 april 2005 @ 21:19:
Wat jij zoekt is een outer join:
SQL:
1
2
3
4
5
SELECT uitvoeringen.cursus, uitvoeringen.begindatum, uitvoeringen.docent, uitvoeringen.locatie,
cursussen.omschrijving, medewerkers.naam
FROM uitvoeringen, cursussen, medewerkers
WHERE uitvoeringen.cursus = cursussen.code
AND uitvoeringen.docent = medewerkers.mnr (+)
haha super
dat ook weer opgelost, bedankt! :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Begrijp je het nou ook? :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.


Verwijderd

Topicstarter
tuuuuurlijk O-)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Het was geen geintje hoor, als je het niet begrijpt, dan heb je nog niks aan dit topic gehad. :)

'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.


Verwijderd

Topicstarter
-NMe- schreef op donderdag 21 april 2005 @ 22:01:
Het was geen geintje hoor, als je het niet begrijpt, dan heb je nog niks aan dit topic gehad. :)
tuurlijk wel, mijn school opdracht voor deze week is klaar :p

maar ik heb wel in het boek opgezocht wat het precies doet enzo :)
Pagina: 1