[SQL] Ik snap niets van die joins¿¡

Pagina: 1
Acties:

  • tymiek
  • Registratie: Januari 2002
  • Laatst online: 21-08 16:43

tymiek

drinkjedrankje slikjeslokje

Topicstarter
Het is een huiswerk vraag maar ik hoef niet perse het antwoord als ik het maar ga snappen.

Mijn probleem staat eigenlijk in het globaal al in de topictitel.
Ik zal even wat vooraf vertellen. Ik heb dus nu huiswerk van SQL dat gedaan moet worden in Sybase ASA. Nu heb ik een boek hierzo van T. de Rooij met veel dingen erin die ik snap maar die joins dus echt niet.
Ik heb al wat FQA en Tuts gelezen op het web o.a. die hier in de FQA staan maar daar stond het ook niet echt uitgediept.

Ik heb nu een vraag gekregen van deze db inzet.
Ik heb al een paar vragen gedaan die waren makkelijk zoals

f) Geef van alle medewerkers de naam, en de naam en het uurtarief van zijn of haar functie.

g) Geef van alle "inzetten" de projectcode, de naam van de medewerker en het aantal werkelijke_uren.

h) Geef van alle "inzetten" van programmeurs de projectcode, de naam van de medewerker en het aantal werkelijke_uren.

i) Geef van alle "inzetten" van programmeurs de projectnaam, de naam van de medewerker en het aantal werkelijke_uren.

dit had ik bij de laatste die ik wist gedaan en ik weet dat ik daar een uitbreiding op moet maken.

code:
1
2
3
4
5
select project.naam, medewerker.naam, inzet.werkelijke_uren 
from medewerker, project, inzet 
where medewerker.nr=inzet.m_nr 
and medewerker.fcode='pr' 
and inzet.p_code=project.code


nou zit ik met de laatste van deze serie vragen daar moet ik waarschijnlijk een join maken en ik heb er al wat gedaan maar weet niet welke dingen ik precies moet schrijven om het juiste uit de db te halen.

deze vraag
j) Geef van alle "inzetten" van programmeurs de projectnaam, de naam van de betreffende projectleider, de naam van de medewerker en het aantal werkelijke_uren.

code:
1
2
3
4
5
6
7
select project.naam,a.naam as projectleider, medewerker.naam, inzet.
    werkelijke_uren 
from medewerker a, medewerker, project, inzet, 
where medewerker.nr=inzet.m_nr 
and medewerker.fcode='pr' 
and a.fcode='pl' 
and inzet.p_code=project.code


bij die krijg ik wel alle projecten maar dan geeft ie bij het projecten die geen Projectleider heeft toch een naam bij projectleider.

code:
1
2
3
4
5
6
7
8
select project.naam,a.naam as projectleider, medewerker.naam, inzet.
    werkelijke_uren 
from medewerker a, medewerker, project, inzet, 
where medewerker.nr=inzet.m_nr 
and medewerker.fcode='pr' 
and a.fcode='pl' 
and inzet.p_code=project.code 
and project.pl=a.nr


bij deze geeft ie alleen de projecten die een projectleider hebben...

Wie zou mij kunnen helpen met een goede uitleg van joins of anders de vraag kunnen uitleggen.

Als het niet mag dan hoeft het niet om het antwoord te geven, maar dan zou ik dus wel graag een betere join uitleg willen lezen dus links zijn ook welkom.

Mijn dank iig voor het lezen.

[ Voor 3% gewijzigd door tymiek op 12-01-2003 12:57 ]

Iets met een snelle pc/ssd etc geen zin meer om alles op te schrijven :o


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

code:
1
2
3
4
5
SELECT p.naam AS projectnaam, m2.naam AS projectleider, m1.naam AS medewerkernaam, i.werkelijke_uren
FROM inzet i
INNER JOIN project p ON i.p_code = p.code
INNER JOIN medewerker m1 ON i.m_nr = m1.nr
INNER JOIN medewerker m2 ON i.pl = m2.nr

  • beany
  • Registratie: Juni 2001
  • Laatst online: 04:23

beany

Meeheheheheh

Ik heb het idee dat die arme jongen er nu nog niks van snapt... Naast een oplossing wil hij ook weten hoe die joins werken.

En nee, ik ben ook niet zo'n SQL guru, dus ik kan het ook niet uitleggen... ;)

Dagelijkse stats bronnen: https://x.com/GeneralStaffUA en https://www.facebook.com/GeneralStaff.ua


  • tymiek
  • Registratie: Januari 2002
  • Laatst online: 21-08 16:43

tymiek

drinkjedrankje slikjeslokje

Topicstarter
beany schreef op 12 January 2003 @ 13:32:
[...]


Ik heb het idee dat die arme jongen er nu nog niks van snapt... Naast een oplossing wil hij ook weten hoe die joins werken.

En nee, ik ben ook niet zo'n SQL guru, dus ik kan het ook niet uitleggen... ;)
Precies ik vind het heel aardig dat ik de oplossing krijg, maar snappen doe ik het nog steeds niet en mijn leraar is zo een kl**tviool dat ie het niet goed kan uitleggen.
Ik zit er bv mee dat als ik de eerste query doe dat ik dan wel alle projecten krijg maar dat ie ook namen invult op een plek waar geen projectleider is....


Ik heb dus de code die hierbovenstaat geprobeert en er komt weer iets heel anders uit dan zou moeten maar ik ben ietsje verder met het snappen van joins.

Ik krijg nu 2 projecten met daarin ook een pl bij de gewerkte uren en dat moet weer niet en dat 3e project is nu er niet bij.....

die pl krijg ik nu weg door dit where statement erbij te doen
code:
1
where medewerker.fcode='pr'


nu nog het derde project dat geen projectleider heeft erbij halen....¿¿¿

Is er niet een of ander statement die aangeeft dat als Projectleider null of 'waarde' is dat ie dat moet pakken. Zoiets als
code:
1
and project.pl>=NULL

Ik heb die code gedaan en die geeft niet het gewenste res.

[ Voor 38% gewijzigd door tymiek op 12-01-2003 14:17 ]

Iets met een snelle pc/ssd etc geen zin meer om alles op te schrijven :o


  • tymiek
  • Registratie: Januari 2002
  • Laatst online: 21-08 16:43

tymiek

drinkjedrankje slikjeslokje

Topicstarter
Ik heb hem gevonden alleen weet ik nog niet precies hoe ik het gedaan heb.

code:
1
2
3
4
5
select project.naam, a.naam as projectleider, medewerker.naam, inzet.werkelijke_uren 
from inzet inner join project on inzet.p_code=project.code
inner join medewerker on inzet.m_nr=medewerker.nr
left outer join medewerker a on project.pl=a.nr
where medewerker.fcode='pr'


dit deed het hem
code:
1
left outer join medewerker a on project.pl=a.nr


kan iemand dat verklaren voor mij???

Iets met een snelle pc/ssd etc geen zin meer om alles op te schrijven :o


  • tymiek
  • Registratie: Januari 2002
  • Laatst online: 21-08 16:43

tymiek

drinkjedrankje slikjeslokje

Topicstarter
Die heb ik al gedaan gisternacht maar daar stond ook niet echt iets over inner en outer en right en left joins in...

Iets met een snelle pc/ssd etc geen zin meer om alles op te schrijven :o


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:40

gorgi_19

Kruimeltjes zijn weer op :9

Deze uitleg met de voorbeelden vind ik op zich wel duidelijk, wat een Left, Right en Inner Join doet.

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

Mocht je zaken nog niet begrijpen, kan je dan aangeven wat je niet begrijpt?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • tymiek
  • Registratie: Januari 2002
  • Laatst online: 21-08 16:43

tymiek

drinkjedrankje slikjeslokje

Topicstarter
gorgi_19 schreef op 12 januari 2003 @ 14:49:
Deze uitleg met de voorbeelden vind ik op zich wel duidelijk, wat een Left, Right en Inner Join doet.

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

Mocht je zaken nog niet begrijpen, kan je dan aangeven wat je niet begrijpt?
Nu snap ik het al wat meer maar daar staat niet wat een outer join is?

Iets met een snelle pc/ssd etc geen zin meer om alles op te schrijven :o


Verwijderd

De outerjoin is een vorm van een Equijoin waarbij we als het ware zeggen: Als het zo is dat een kolom waarde die in een van de 2 tabellen voorkomt (en wordt gebruikt in het WHERE gedeelte) niet meer voorkomt in de andere tabel, neem deze rij dan toch eenmaling op in het uiteindelijke overzicht.

BTW: Als je dit voor school moet doen, waarom heb je geen ondersteunde literatuur waar je dit in kan opzoeken? :P

  • tymiek
  • Registratie: Januari 2002
  • Laatst online: 21-08 16:43

tymiek

drinkjedrankje slikjeslokje

Topicstarter
Verwijderd schreef op 12 January 2003 @ 15:48:
De outerjoin is een vorm van een Equijoin waarbij we als het ware zeggen: Als het zo is dat een kolom waarde die in een van de 2 tabellen voorkomt (en wordt gebruikt in het WHERE gedeelte) niet meer voorkomt in de andere tabel, neem deze rij dan toch eenmaling op in het uiteindelijke overzicht.

BTW: Als je dit voor school moet doen, waarom heb je geen ondersteunde literatuur waar je dit in kan opzoeken? :P
Dat boek daar staat het gewoon niet in 8)7
en in mijn reader staat het op 1 bladzijde waar ik niks van snap en de leraar tja laten hem maar niet meer gaan beledigen...

maar nu ga ik het steeds meer snappen

dank u mensen!!!

Iets met een snelle pc/ssd etc geen zin meer om alles op te schrijven :o


  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Ik heb het boek: SQL Leerboek van Rick van der Lans gebruikt als leermateriaal.
Het is een boek waar SQL zeer uitgebreid behandled wordt.

Spijtig alleen dat een groot deel van de stof die behandeld wordt niet in MySQL werkt.

It’s nice to be important but it’s more important to be nice

Pagina: 1