2013-04-18 50 views
1

我希望能夠檢索應用程序中每個房間的用戶最後發佈的文章。但是,通過我建立的查詢,我正在檢索第一個?使用SQL獲取每個房間的最後一篇文章

的表格看起來像這樣

Rooms 
id|name|subname 

Posts 
id|title|description|id_room|date_posted 

我缺少什麼或者做錯了什麼?

SELECT * FROM rooms AS rm 
INNER JOIN posts AS pst ON pst.id_room = rm.id 
WHERE pst.id = ( 
SELECT MAX(pst.id) FROM posts) 
GROUP BY rm.id 

謝謝

+0

你能稍微解釋一下數據庫和用例的其他部分嗎? – bplattenburg

+0

剛剛編輯過表信息 –

+0

'pst.id_room,pst.id,max(日期 - 張貼)pst.id_room,pst.id; pst.id;'我認爲所以這就是你需要? – Meherzad

回答

2

類似的東西,應該是更好的(你的查詢只檢索MAX pst.id,而不是房間MAX pst.id)

select * from rooms as rm 
inner join posts as pst on pst.id_room = rm.id 
where pst.id in (select max(pst.id) from posts 
       group by pst.id_room) 

簡化SqlFiddle,與你的查詢和我的。

+0

它仍然返回第一篇文章...是的,我想在數據庫表中的每個房間的結果,因此加入 –

+1

@JoãoDias在我的答案中看到SqlFiddle,有些東西是不同於你有嗎? –

+0

這似乎工作從我可以告訴。 – bplattenburg

相關問題