Avatar billede Slettet bruger
13. juni 2009 - 12:30 Der er 7 kommentarer og
1 løsning

LEFT JOIN giver mange rows

Hej

Jeg skal hente en liste ud over undertekster hvor jeg tjekker i en anden tabel om den er oversæt Jeg vil gerne have at CheckedOutUserID er NULL hvis den ikke findes i SourceControl

SELECT SL.*, SC.CheckedOutUserID
FROM Subtitles S
INNER JOIN SubtitleGroups SG ON SG.SubtitleID = S.ID
INNER JOIN SubtitleLines SL ON SL.SubtitleID = S.ID
LEFT JOIN SourceControl SC ON SC.ProjectID = S.ID AND SC.GroupID = SG.GroupID
WHERE S.ID = '684D0A7F-032F-4FF6-9340-DE20295C53A1'
AND SG.GroupID = 'CDA21F84-BCCD-42E0-8238-2B3A349468AA'
ORDER BY SL.[Index]


Men lige nu får jeg mange, mange dupliketter af den samme row, fordi den udskriver en row for hver den finder i sourcecontrol, hvordan løser jeg det?
Avatar billede Syska Mester
13. juni 2009 - 12:45 #1
Du får jo 1 row per række i SourceControl ...

Men du siger du får ens rows ... så må du jo have ens data ... er de 100% ens eller ?

i så fald ...

SELECT DISTINCT SL.*, osv.....

// ouT
Avatar billede Slettet bruger
13. juni 2009 - 13:00 #2
Der findes kun én af hver i SubtitleLines (SL). Jeg vil blot joine sammen med SourceControl og se om rækken findes der, for så betyder det at den er tjekket ud og så skal den skrive CheckedOutUserID ud, ellers skal den skrive NULL

Altså
SubtitleID | Index | CheckedOutUserID
332            1      [GUID] - tjekket ud
333            2      [GUID] - tjekket ud
334            3      NULL  - ikke tjekket ud
Avatar billede Slettet bruger
13. juni 2009 - 13:01 #3
Jeg kan ikke lave distinct, da nogle kollonier i SubtitleLines er text og så kan man ikke..
Avatar billede Syska Mester
13. juni 2009 - 13:21 #4
Jeg kan ik' lige gennemskue din table struktur.

Lyder som om du har 2 tables som inderholder samme data til et hvis punkt, og så flytter du det over ...

Kan du så ikke inden angive at den er oversat og ikke skal med i resultatet ?

// ouT
Avatar billede Slettet bruger
15. juni 2009 - 09:01 #5
Jeg løste det selv, jeg manglede at selektere på et kollone
Avatar billede Syska Mester
15. juni 2009 - 10:04 #6
Hvordan kan det løse et problem ved at select en colomn mere ? Det vil da aldrig løse dit problem ... en colomn mere gør jo ikke dine rows unique.

// ouT
Avatar billede Slettet bruger
15. juni 2009 - 10:26 #7
Ingen ide, men da jeg selekterede på en kollone mere i min join kom det rigtigt ud. Ingen dubletter og den viste NULL hvor den skulle.
Avatar billede Syska Mester
16. juni 2009 - 18:18 #8
well ... du må næsten også have lavet noget andet om ... ellers skulle man tro at der er en bug.

Kan du genskabe det gamle problem igen ved at fjerne den ekstra column igen ?

// ouT
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