Om jag inte förstår dig helt fel så är det nog en left join du vill ha. Med en inner join försvinner alla rader i tblTask som inte uppfyller hela join-kriteriet. Med en left join får du ut alla rader från tblTask, men om det finns matchningar i tblTodo måste de uppfylla alla kriterierna för att komma med.
Frågan#1
Hej,
Jag har en fråga som ser ut så här:
SELECT TOP 1 t.[Id]
FROM ((tblTask t INNER JOIN tblObject o ON o.[Nr] = t.[Object1Nr]) INNER JOIN tblExtraFieldData ed ON o.[Id] = ed.[OwnerId])
LEFT JOIN tblDocRef dr
ON t.[Id] = dr.[OwnerId]
LEFT JOIN tblDocument d
ON d.Id = dr.DocId
INNER JOIN tblTodo td
ON td.OwnerId = t.[Id]
AND td.OwnerType = 2
AND td.DefId = 10004
AND td.CompletedBy <> ''
WHERE (d.Id IS NULL OR d.BinDocType = 'pdf')
AND t.[Id] = 27106
AND t.[Status] = 4
AND t.[Priority] IN (3)
AND ed.[FieldId] = 10054
AND Charindex ( '@', ed.[Value] ) <> 0
Denna joinen:
INNER JOIN tblTodo td
ON td.OwnerId = t.[Id]
AND td.OwnerType = 2
AND td.DefId = 10004
AND td.CompletedBy <> ''
Det enda som är intressant, är om om det blir en matchning skall completedBy inte vara tom.
Har jag skrivit rätt då?
Finns det ingen matchning skall villkoret inte vara med...
Mvh
Henrik

