Query vraag: haalt record dubbel op ipv enkel

Status
Niet open voor verdere reacties.

xmir

Gebruiker
Lid geworden
12 mrt 2011
Berichten
212
Hi,
Hopelijk ben ik hier juist met mijn vraag.
Ik wil een query maken waarbij ik uit 1 tabel 2x een verschillende waarde op moet halen namelijk in de tabel 'land' moet ik het land ophalen wat bij de code voor het geboorteland hoort en ook het land behorende bij het land waarin degene woont.
Nu ben ik er denk ik bijna, hij haalt alleen nu 2 regels op ipv 1. Dit is wat ik heb:

select distinct ost_student.studentnummer
, ost_student.geboorteland AS geboorteland
, ost_student_adres.land AS woonland
, geboorteland.naam AS geboorteland_nl
, geboorteland.naam_en AS geboorteland_en
, woonland.naam
, woonland.naam_en
from ost_student
, ost_land geboorteland
, ost_land woonland
, ost_student_adres
where ost_student.geboorteland = geboorteland.land
and ost_student_adres.land = woonland.land
and ost_student.studentnummer = ost_student_adres.studentnummer
and ost_student.studentnummer = '6628575'

En dit haalt hij dan op:
query opghehaald.jpg

Kan iemand mij helpen?

Dank en groet Mirjam
 
Ik vind het een logisch resultaat van je query. Zonder de db te zien, kan ik er niet veel anders van maken. Begin eens met de db erbij te doen met wat dummy data uiteraard.
 
het resultaat zegt dat de student 2 woonadressen heeft: één in Kenya en één in Nederland. Dat kan uiteraard.
 
De database erbij doen wordt lastig maar dit is de data in de tabellen:
tabel ost_student
studentnummer 6628575
geboorteland KE

tabel ost_student_adres
studentnummer 6628575
land NL

tabel ost_land
land NL, KE
naam Nederland, Kenya
naam_en Netherlands, Kenya

Als ik dus de vertaling van de landcodes die in beide tabellen anders zijn omdat het ene land het woonland is en het andere het geboorteland heb ik voor beide de tabel ost_land nodig alwaar hij twee verschillende waardes op moet halen.
Hier moet dus 1 resultaat opgehaald worden met voor 1 student het woonland en het geboorteland.

Hopelijk maakt dit het duidelijker.
 
Dus je wilt écht dat wij eerst zelf tabellen gaan maken en gegevens in gaan kloppen? Daggut niet :). Maak dan een kopie van de database met de noodzakelijke onderdelen (tabellen) queries) die we nodig hebben om het vraagstuk te bekijken. Mij ontbreekt de tijd om eerst zelf een tabelletje te maken. (lees: geen zin...)
 
Bij deze ;)
 

Bijlagen

  • UUTesten.zip
    126 bytes · Weergaven: 15
Da's mooi, want je bijlage is leeg. En daar valt voor ons dus bar weinig in te kijken :). Laat eens zien wat je gedaan hebt als oplossing? 't Is tenslotte een forum; lezers willen graag weten hoe je een probleem oplost, niet dat je het voor jezelf hebt opgelost :). Daar kan namelijk, behalve jij, niemand iets mee.
 
Grr ik had nog wel zo'n schattig databaseje in elkaar geknutseld ;).
Ik zat eigenlijk al in de goede richting maar ik kwam erachter dat er ook nog 3 adrestypes waren, vandaar de 3 records.
Oplossing uiteindelijk dus vrij simpel:

select ost_student_adres.land
, ost_land.naam
, ost_land.naam_en
, ost_student.geboorteland
, land2.naam
, land2.naam_en
from ost_student_adres
, ost_student
, ost_land
, ost_land as land2
where ost_student.studentnummer = ost_student_adres.studentnummer
and ost_student_adres.land = ost_land.land
and ost_student.geboorteland = land2.land
and ost_student_adres.adrestype = 'ST'
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan