次のクエリが異なる結果セットを返すのはなぜですか?異なるSQL結果はなぜですか?
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
最初のクエリが返す:
3 FF
10790 FS
0 SF
117 SS
2番目のクエリが返す:
3 FFは
10790 FS
117 SSは
両方のクエリは、SQL Server 2008の標準データベースに対して実行されます。なぜ2つの異なる結果セットが返されるのか理解できません。私は* =がLEFT OUTER JOINの簡略構文だと思った。私はこれほど長い間これを見てきました。
おかげで...
答えをいただきありがとうございます。しかし、提供したクエリの例では、すべてのmc.conv_stringが返されます。私は、必要に応じて このクエリは、物事を返します。 SELECT COUNT(ml.link_type)を、MSP_CONVERSIONS MC LEFT OUTERから をmc.conv_string登録しようMSP_LINKSミリリットル ON mc.CONV_VALUE = ml.link_type とml.PROJ_ID = 4 mc.STRING_TYPE_ID = 3 グループby mc.conv_string ご協力ありがとうございます。 –