以下是我的查詢左連接返回的行少於預期?請提供你的推理,
Select Count(*)
from Table1 s
left join Table2 d
ON s.subjectid = d.subjectid
and s.PROJECTID = d.projectid
and s.SITEName = d.SITENAME
left join Table3 dev
on s.subjectid = dev.subjectid
and s.projectid = dev.projectid
and s.siteid = dev.siteid
Where s.isprod =1
and d.isprod =1
and dev.isprod = 1
and s.projectid =107
-- Output 301 ROWS
現在這個查詢返回給我301行,但是如果我不使用表3如下圖所示
查詢,則連接返回我的2203行, Select Count(*)
from Table1 s
left join Table2 d
ON s.subjectid = d.subjectid
and s.PROJECTID = d.projectid
and s.SITEName = d.SITENAME
Where s.isprod =1
and d.isprod =1
and s.projectid =107
-- OutPut 2203 ROWS
根據我對左連接的理解,左表中的所有行應保留,即使它們與右表不匹配。但是在這種情況下,我的行從查詢2中的2203減少到查詢1中的301。這怎麼可能?
請提出可能會出現什麼問題。更多的澄清,
表1具有相同的「其中」條件如上述具有1300行
表2用相同的「其中」條件如上述具有2203行
表3以相同的「其中」條件如上述具有129行
這是一個非常準確的解決方案!謝謝Trincot! –