2012-11-22 71 views
-1

我想創建一個sql查詢,我想從一個表中選擇所有字段,並從另一個表中選擇一個作爲外鍵的id。SQL加入以選擇具有一對多關係的查詢

我幾乎到了那裏,但這返回所有圖像id。

select p1.pub_id,i1.image_id 
from pub p1, images i1 
where p1.pub_id = i1.pub_id 

我只需要一個圖像記錄,最新的一個。任何想法都會很棒。我花了很多年試圖讓我的頭腦在這附近。

+0

你必須有其image_id(許多人),它應該有一些條件。 – sufleR

+0

你可能會提供更多關於你的表格的信息 – sailingthoms

+1

你真的應該習慣使用明確的'JOIN's –

回答

1

所以你花了幾個小時無法做到這一點,一旦你把它發佈在這裏,你可以解決它。無論如何。

select p1.pub_id, i1.image_id 
    from pub p1, images i1 
where i1.image_id = (select max(image_id) from images where pub_id = p1.pub_id) 
+0

@sufleR之後,請不要編輯其他用戶的答案以更改代碼(特別是當您的答案與實質不同時)。如果您有自己的答案,請添加它。 – Ben

+0

這不是你自己問題的答案。你在這裏做一個笛卡爾連接(因爲你沒有使用顯式連接語法,所以你沒有得到任何錯誤)。 – Ben

-1
select p1.pub_id,i1.image_id from pub p1, images i1where p1.pub_id = i1.pub_id(+) 

支持Oracle

+0

OP對這個問題提出了拙劣的問題,只是在評論中解釋了完整的要求,但唉,一個OUTER JOIN與他們想要的完全相反。 – APC