Avatar billede Lars Søndergaard Nybegynder
28. november 2005 - 16:19 Der er 11 kommentarer og
1 løsning

inner join

Jeg har følgende sql:


SELECT    TBL_Country.country_name, TBL_District.district_number, TBL_Student.student_id,  TBL_Student.country_id
FROM      TBL_Student
INNER JOIN
        TBL_Country ON TBL_Student.country_id = TBL_Country.country_id
INNER JOIN
    TBL_District ON TBL_Student.home_district = TBL_District.district_id

I min table TBL_Student har jeg en masse med home_district = 0, og dem vil jeg også gerne have med i min query selvom der ikke findes et TBL_District.district_id = 0

Hvad or hvordan skal jeg gøre ?
Avatar billede dr_chaos Nybegynder
28. november 2005 - 16:22 #1
noget i denne stil ?

SELECT    TBL_Country.country_name, TBL_District.district_number, TBL_Student.student_id,  TBL_Student.country_id
FROM      TBL_Student
INNER JOIN
        TBL_Country ON TBL_Student.country_id = TBL_Country.country_id
INNER JOIN
    TBL_District ON TBL_Student.home_district = TBL_District.district_id
UNION
SELECT    TBL_Country.country_name, TBL_District.district_number, TBL_Student.student_id,  TBL_Student.country_id
FROM      TBL_Student
INNER JOIN
        TBL_Country ON TBL_Student.country_id = TBL_Country.country_id
INNER JOIN
    TBL_District ON TBL_Student.home_district = 0
Avatar billede Lars Søndergaard Nybegynder
28. november 2005 - 16:38 #2
dr_chaos > den trækker de samme rækker ud mange gange. Jeg får 22000 rækker og der skal kom komme omkring 4000
Avatar billede Lars Søndergaard Nybegynder
28. november 2005 - 16:39 #3
der burde vel også være nogen af dem som hedder district_number som er tomme eller null ?
Avatar billede dr_chaos Nybegynder
28. november 2005 - 17:00 #4
hvorfor skulle district_number være tom eller null ?

prøv med har ændret en del ting og så lavede jeg en lille fejl med stor betydning :)
SELECT    TBL_Country.country_name, TBL_District.district_number, TBL_Student.student_id,  TBL_Student.country_id
FROM      TBL_Student
INNER JOIN
      TBL_Country ON TBL_Country.country_id = TBL_Student.country_id
INNER JOIN
    TBL_District ON  TBL_District.district_id = TBL_Student.home_district
UNION
SELECT    TBL_Country.country_name, TBL_District.district_number, TBL_Student.student_id,  TBL_Student.country_id
FROM      TBL_Student
INNER JOIN
        TBL_Country ON TBL_Country.country_id = TBL_Student.country_id
WHERE TBL_Student.home_district = 0
Avatar billede dr_chaos Nybegynder
28. november 2005 - 17:01 #5
fejl igen prøv med:
SELECT    TBL_Country.country_name, TBL_District.district_number, TBL_Student.student_id,  TBL_Student.country_id
FROM      TBL_Student
INNER JOIN
      TBL_Country ON TBL_Country.country_id = TBL_Student.country_id
INNER JOIN
    TBL_District ON  TBL_District.district_id = TBL_Student.home_district
UNION
SELECT    TBL_Country.country_name, 0 AS district_number, TBL_Student.student_id,  TBL_Student.country_id
FROM      TBL_Student
INNER JOIN
        TBL_Country ON TBL_Country.country_id = TBL_Student.country_id
WHERE TBL_Student.home_district = 0
Avatar billede Lars Søndergaard Nybegynder
28. november 2005 - 17:15 #6
jeg prøver det lige.. men grunden til at district_number bør være tom eller null er at home_district er ofte = 0 og der findes ingen rækker i TBL_District hvor district_id = 0 ... jeg tester med det samme og vender tilbage :)
Avatar billede dr_chaos Nybegynder
28. november 2005 - 17:17 #7
ok jeg har sat district_number til at være 0 i den anden del af sql sætningen.
Avatar billede Lars Søndergaard Nybegynder
28. november 2005 - 17:34 #8
fremragende... hvem der bare havde styr på union og join og andre fine sager... 1000 tak for hjælpen det kunne ikke være bedre :)
Avatar billede Lars Søndergaard Nybegynder
28. november 2005 - 17:35 #9
og smid endelig et svar
Avatar billede dr_chaos Nybegynder
28. november 2005 - 17:37 #10
gør jeg :)
hvis man arbejder nok med det får man bedre styr på det :)
Jeg forsøger også nogle gange at hjælpe selv om jeg ikke helt ved hvor det fører hen og så lærer jeg også en del :)
Avatar billede Lars Søndergaard Nybegynder
28. november 2005 - 17:46 #11
ja - vi lærer heldigvis hele tiden.. jeg er dog mest en spørger herinde :)
Avatar billede dr_chaos Nybegynder
28. november 2005 - 17:48 #12
:) jeg skifter lidt.
Jeg har også spurgt meget herinde før jeg begyndte at svare :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester