Oracle 11g - левое внешнее соединение не возвращает все строки из левой таблицы (это не условие where / неявная внутренняя ошибка соединения.) - PullRequest
0 голосов
/ 03 марта 2012

Я выполнил следующие два запроса в 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 (левая таблица) в результатах независимо от того, есть ли совпадение во второй таблице.

Кто-нибудь знает, что происходит или что я не так делаю?Спасибо.

...