Я использую Oracle 10g Express Edition 10.2 и использую его из приложения C # со сборкой Oracle.DataAccess 2.111.
Я могу выбирать данные из одной таблицы, но если я пытаюсь выбрать данные из несколькихтаблицы, набор пуст.
select * from Table1
работает хорошо, но:
select * from Table1, Table2
select * from Table1, Table2 where Table1.Id = Table2.Id
select * from Table1 inner join Table2 on Table1.Id = Table2.Id
все три не дадут результатов.При использовании так:
using (OracleCommand getData = new OracleCommand("select * from Table1, Table2", oracleConnection))
{
using (OracleDataReader reader = getData.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine("Got record");
}
}
}
не будет "Полученной записи" (в то время как Oracle SQL Developer показывает тысячи записей для одного и того же запроса).
Что странно, если я запускаюте же три запроса от Oracle SQL Developer 2.1, все возвращают результаты.
Что происходит?
Редактировать: Я действительно глуп, я забылпроверьте, есть ли что-то в таблице 2.На самом деле таблица 2 в настоящее время пуста.Выполнение select * from Table1 left join Table2 on Table2.Id = Table1.Id
показывает все хорошо.
Так что мой вопрос будет немного другим: с учетом синтаксиса Oracle, каково правильное поведение трех «ошибочных» запросов?Для отображения всего или для отображения пустого набора?И мне все еще интересно, почему Oracle SQL Developer и мое приложение не показывают одинаковый результат.