2012-01-13 81 views
3

所以我在接下來的幾周裏會有一個數據庫考試,和往常一樣,我決定回顧過去的論文,看看這個問題是怎麼回事。一切都很順利,直到我遇到這個問題。SQL麻煩考試查詢

編寫以下查詢SQL構造:哪些森林被發現在同一地理區域(fo_loc) ,由同一 公司所有。輸出應具有以下結構:更大的森林 名稱,更小的森林名稱和公司名稱。儘量避免多次打印相同林名稱的 。

這是有關這個問題的模式:

表:森林

Fo_name character(10) P.K. 
Fo_Size Integer 
Fo_loc Character(10) 
Fo_Comp Character(10)) 

用我有限的SQL的知識,我不認爲這個問題可以聲明解決,所以我也嘗試過PL/SQL(或者更確切地說plpgsql),我越來越接近解決方案,但很快我發現我正在使用很多我們在課堂上沒有提到的命令,更不用說解決方案遠離一個預計會出現3分的問題。

所以我決定寫在這裏......我錯過了什麼?任何幫助將不勝感激。

感謝

回答

9

只是自連接應該工作:

SELECT a.Fo_Name as 'Larger', 
     b.Fo_Name as 'Smaller', 
     a.fo_Comp 
FROM Forest a 
INNER JOIN Forest b 
    ON a.fo_Comp= b.fo_Comp 
    AND a.fo_loc = b.fo_loc 
    AND a.fo_name <> b.fo_name 
WHERE a.fo_size > b.fo_size 
+0

迅速回答......一如既往! – Taryn 2012-01-13 21:56:23

+0

+1擊敗我2分鐘... – 2012-01-13 21:58:58

+0

非常感謝。我其實也嘗試過類似的東西,但是我在加入之後對條件進行了測試。再次感謝您幫助我。 – Marxley 2012-01-13 22:08:11