[SQL] optionele relatie

Pagina: 1
Acties:

  • chaozz
  • Registratie: Juni 2000
  • Laatst online: 23-08 22:57
ik heb een tabel genaamd Aanstelling. hierin staan gegevens over de aanstelling van een Persoon bij een Instelling. in de Aanstelling staat oa. een Functie ID (f_id), maar deze is optioneel. in sommige records is dit veld dus Null.

als ik alle aanstellingen van een Persoon wil weten, en eventueel wat zijn Functie (f_functie) is dan lukt dit niet. ik krijg dan alleen de Aanstellingen waar een Functie ID is ingevuld.

hier een plaatje om het geheel wat toe te lichten:

Afbeeldingslocatie: http://home.quicknet.nl/qn/prive/ejg.wenners/databeest.jpg Klikbaar

iemand een idee ik dit via 1 query in een recordset krijg? dus alle aanstellingen van een persoon, en eventueel een omschrijving van zijn functie?

chaozz.nl | RetroGameCouch


  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Volgens mij moest je met outer join's gaan werken (maar het zou kunnen dat ik hier iets heel stoms zeg :) )

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Volgens mij is een LEFT JOIN voldoende.. maar we zullen zien :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
Bosmonster schreef op 19 December 2002 @ 09:41:
Volgens mij is een LEFT JOIN voldoende.. maar we zullen zien :)


Left Join, outer join, what's in a name....

https://fgheysels.github.io/


  • chaozz
  • Registratie: Juni 2000
  • Laatst online: 23-08 22:57
internaat, dat werkt. maar het instellings ID in Aanstelling is ook optioneel. hoe prop ik dat in 1 query? dus :

- alle aanstellingen (van een bepaald p_id)
- optioneel de functie omschrijving (via f_id)
- optioneel de instelling naam (via i_id)

nogmaals, het left join verhaal werkt perfect (zat zelf met inner join te klieren)

chaozz.nl | RetroGameCouch


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
Ook outer joinen(left/right joinen) maar dan op die aanstellings-tabel.

https://fgheysels.github.io/


  • chaozz
  • Registratie: Juni 2000
  • Laatst online: 23-08 22:57
zo lijkt het te werken
code:
1
2
3
4
SELECT functie.f_functie, aanstelling.p_id, *
FROM instelling RIGHT JOIN (aanstelling LEFT JOIN functie 
ON aanstelling.f_id = functie.f_id) ON instelling.i_id = aanstelling.i_id
WHERE (((aanstelling.p_id)=2));


maar zo is het vanuit Instelling toch? het moet vanuit aanstelling eigenlijk.. dat is de base tabel, die andere 2 zijn dus optioneel (val heftig in de herhaling, val heftig in de herhaling..)

chaozz.nl | RetroGameCouch


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
Als die instelling al geen aanstelling heeft, kan die ook moeilijk een functie hebben he.
Je hebt geen enkele directe link tussen functie en instelling, dus kan je ook niet direct linken daarmee.

https://fgheysels.github.io/


  • chaozz
  • Registratie: Juni 2000
  • Laatst online: 23-08 22:57
tot zover begrijp ik je. maar is de query zoals ik nu heb goed of fout???

chaozz.nl | RetroGameCouch

Pagina: 1