2012-10-05 135 views
0

我有兩個表;一個帶有發佈數據,另一個每行都有一個標籤和發佈ID(FK)。
是否可以使用單個查詢從這兩個表中選擇一個包含其所有標記的帖子?怎麼樣?從一個查詢中選擇一個帖子及其所有標籤

感謝

+0

你能提供樣品的輸入和輸出數據? –

回答

0

我想你可以轉身查詢

SELECT * FROM post p 
INNER JOIN TABLE tag 
ON tag.tag_id = p.tag_id 
WHERE p.post_id=? 

雖然我不認爲這將是比做2個獨立的查詢


編輯

更快

下面的評論認爲做一個加入比兩個單獨更快查詢。

+0

是的,這是正確的。但是:請不要使用隱式聯接(以逗號分隔的'FROM'子句)語法,因爲它在每個主要RDBMS上都被棄用了。並且在我知道的每個系統上,執行(簡單)'JOIN'(通過正確設置的數據庫)_將比嘗試執行2個單獨的查詢更快。 –

+0

@ Clockwork-Muse。 。 。我同意你的評論大部分。不幸的是,大多數數據庫中都沒有棄用逗號。有許多理由不使用它,但棄用不是其中之一。唉。 –

+0

很高興知道!我編輯過它,現在將使用JOIN運算符。雖然有些uni仍然給逗號分隔的表格做一個連接的方法;) 無論如何感謝您的建議 – charly

2

假設你有一個名爲職位表(ID,內容)和標籤(POST_ID,標籤):

SELECT posts.id, posts.content, tags.tag FROM posts 
    LEFT JOIN tags ON tags.post_id = posts.id 
WHERE posts.id = ? 
相關問題