我正在使用Oracle 10g Express Edition 10.2,並使用它從一個C#應用程序與Oracle.DataAccess 2.111程序集。爲什麼我不能從Oracle中的多個表中選擇?
我可以從一個表中選擇數據,但是如果我嘗試從多個表中選擇數據,則該集合爲空。
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。實際上,Table2目前是空的。做select * from Table1 left join Table2 on Table2.Id = Table1.Id
顯示一切正常。
所以我的問題會有所不同:給定Oracle語法,三個「錯誤」查詢的正確行爲是什麼?顯示所有內容或顯示空集?我仍然想知道爲什麼Oracle SQL Developer和我的應用程序沒有顯示相同的結果。
你能發表一些代碼嗎?你如何閱讀三個結果集? – 2010-07-11 01:23:41