Я выполнил следующие два запроса в Oracle 11g с очень разными результатами:
select count(*)
from smarthome.objects
left outer join smarthome.objectclasses on
smarthome.objects.objectclass = smarthome.objectclasses.objectclass;
Приведенный выше запрос возвращает число 638 строк, которое является правильным, а также ожидаемое число строкчтобы увидеть результат запроса ниже.
select *
from smarthome.objects
left outer join smarthome.objectclasses on
smarthome.objects.objectclass = smarthome.objectclasses.objectclass;
Этот второй запрос возвращает только 50 строк (количество строк в smarthome.objects, которые фактически совпадают в объектном классе между двумя таблицами).Я ожидаю, что второй запрос также возвратит 638 строк, так как я выполняю внешнее левое соединение, которое должно включать в себя все строки из smarthome.objects (левая таблица) в результатах независимо от того, есть ли совпадение во второй таблице.
Кто-нибудь знает, что происходит или что я не так делаю?Спасибо.