通常情況下,如果有問題,我們都會發帖。這是不同的地方,我會期望一個錯誤,但我沒有得到一個。Oracle子查詢不會產生錯誤?
在Oracle中,我有以下:
create table temp_table as
SELECT PersonID AS OtherName
FROM Personnel
WHERE PersonID = '12345';
1. select FunnyName from temp_table; -- This produce an error as expected - good.
2. SELECT * FROM Personnel
WHERE PersonID in (select OtherName from temp_table); --This produces 1 record - good
3. SELECT * FROM Personnel
WHERE PersonID in (select FunnyName from temp_table); --This produces all records - bad
我希望聲明3也給出錯誤的子查詢是相同的陳述1所選擇,它給出錯誤。這當然不是Oracle的錯誤,但我不明白這個邏輯。
我使用的是Oracle 11.
說法是正確的2?或者它應該是SELECT * FROM Personnel WHERE PersonID(從temp_table中選擇OtherName); – 2014-09-02 10:09:13
你是對的。我的道歉 - 將解決。 – 2014-09-02 10:11:56
你可以發佈個人表中的列嗎?人員表中是否有任何專欄「FunnyName」?查詢2似乎是錯誤的,它應該是select * from個人表,因爲temp_table中沒有PersonID列。 – San 2014-09-02 10:17:00