我想寫一個查詢,其中一個表中的列從另一列返回數據。我試圖用子查詢來做,但沒有運氣。我寧願使用子查詢,而不是使用「加入」,因爲我還是新的SQL/Oracle和可以更好地瞭解子查詢,以找到一個解決辦法...如何查詢使用子查詢的Oracle表
第一個查詢是:
SELECT MA_gardenermanager.managerID "senior gardener"
, MA_gardeners.gardenername
, MA_gardenermanager.gardenerID "Manages"
FROM MA_gardenermanager, MA_gardeners
where MA_gardeners.gardenerID = MA_gardenermanager.managerID
order by MA_gardenermanager.managerID
, MA_gardenermanager.gardenerID
;
這將返回以下數據:
senior gardener GARDENERNAME Manages
4 Olivia Brown 1
4 Olivia Brown 5
5 Emily Williams 2
5 Emily Williams 3
第二個查詢是:
select MA_gardenermanager.gardenerID
, MA_gardeners.gardenername "Manages"
from MA_gardeners, MA_gardenermanager
where MA_gardeners.gardenerID = MA_gardenermanager.gardenerID
;
這回S中的以下數據:
GARDENERID Manages
1 Oliver Smith
2 Jack Jones
3 Harry Taylor
5 Emily Williams
我試圖合併這兩個查詢以上,產生這樣的:
senior gardener GARDENERNAME Manages
4 Olivia Brown Oliver Smith
4 Olivia Brown Emily Williams
5 Emily Williams Jack Jones
5 Emily Williams Harry Taylor
我已經試過,但不斷收到ORA-01427:單行子查詢返回多個比一行:
SELECT MA_gardenermanager.managerID "senior gardener"
, MA_gardeners.gardenername
, MA_gardenermanager.gardenerID "manages"
, (select MA_gardeners.gardenername
from MA_gardeners, MA_gardenermanager
where MA_gardeners.gardenerID = MA_gardenermanager.gardenerID)
FROM MA_gardenermanager, MA_gardeners
where MA_gardeners.gardenerID = MA_gardenermanager.managerID
;
是否有一種簡單的方法,我可以通過將第二個查詢作爲子查詢插入第一個查詢來組合這兩個查詢?
天才!這工作完美。我還沒有看過使用別名,所以你的解決方案和建議非常感謝! – 2014-11-02 09:57:38