כאשר אני מוסיף תנאי לטבלה ב left join, התנאי עובד לפני החיתוך.
איך מאלצים את המערכת לשים את התנאי (על STACK8.KEY2) ב where ולא ב on של החיתוך?
זה ה dump של הדו"ח
<p dir="ltr" style="direction: ltr; text-align: left;">SELECT STACK9.INTKEY AS 'INTKEY',
STACK9.CHARDATA AS 'CHARDATA',
STACK8.KEY2 AS 'KEY2',
STACK9.INTKEY AS 'INTKEY'
FROM STACK9 , STACK8 ?
WHERE (STACK9.INTKEY = STACK8.KEY1)
AND (STACK9.INTKEY > 2
AND STACK8.KEY2 = 1)
AND ( 1=1 )</p>
SQL שיוצא:
<p dir="ltr" style="text-align: left;">select demo.dbo.STACK9.INTKEY ,
demo.dbo.STACK9.CHARDATA ,
coalesce( demo.dbo.STACK8.KEY2 , 0 ) ,
demo.dbo.STACK9.INTKEY
from demo.dbo.STACK9 left outer join demo.dbo.STACK8 on ( demo.dbo.STACK8.KEY2 = 1 ) and ( demo.dbo.STACK8.KEY1 = demo.dbo.STACK9.INTKEY )
where ( demo.dbo.STACK9.INTKEY > 2 ) and ( 1 = 1 )</p>
<p dir="ltr"></p>
<p dir="ltr"></p>