Why would the following queries return different result sets?
select count(ml.link_type),mc.conv_string
from MSP_CONVERSIONS mc,MSP_LINKS ml
where ml.PROJ_ID = 4
and mc.STRING_TYPE_ID = 3
and mc.CONV_VALUE *= ml.link_type
group by mc.conv_string
select count(ml.link_type),mc.conv_string
from MSP_CONVERSIONS mc left outer join MSP_LINKS ml on mc.CONV_VALUE = ml.LINK_TYPE
where ml.PROJ_ID = 4
and mc.STRING_TYPE_ID = 3
group by mc.conv_string
The first query returns:
3 FF
10790 FS
0 SF
117 SS
The second query returns:
3 FF
10790 FS
117 SS
Both queries are run against a SQL Server 2008 Standard database. I cannot understand why two different result sets get returned? I thought that *= was shorthand syntax for LEFT OUTER JOIN. I have been looking at this for so long, maybe I missed something small?
Thanks...