13. juni 2009 - 12:30Der 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?
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
Synes godt om
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
Synes godt om
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..
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
Synes godt om
Ny brugerNybegynder
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.