Warum würden die folgenden Abfragen unterschiedliche Ergebnismengen zurückgeben?Warum unterschiedliche SQL-Ergebnisse?
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
Die erste Abfrage zurückgibt:
3 FF
10790 FS
0 SF
117 SS
Die zweite Abfrage zurückgibt:
3 FF
10790 FS
117 SS
Beide Abfragen sind für eine SQL Server 2008 laufen Standard-Datenbank. Ich kann nicht verstehen, warum zwei verschiedene Ergebnismengen zurückgegeben werden. Ich dachte, dass * = Shorthand-Syntax für LEFT OUTER JOIN war. Ich habe mir das schon so lange angesehen, vielleicht habe ich etwas Kleines übersehen?
Dank ...
Vielen Dank für die Antwort, aber das Abfrage-Beispiel, das Sie angegeben haben, gibt EVERY mc.conv_string zurück. Diese Abfrage gibt Dinge, wie ich brauchte: select count (ml.link_type), von MSP_CONVERSIONS mc LEFT OUTER JOIN mc.conv_string MSP_LINKS ml ON mc.CONV_VALUE = ml.link_type und ml.PROJ_ID = 4 wo mc.STRING_TYPE_ID = 3 Gruppe von mc.conv_string Vielen Dank für Ihre Hilfe. –