我無法將幾個sql語句組合成一個更大的單一語句。外部和內部SQL加入
問題: 我有一個新聞源,需要返回登錄用戶關注的所有帖子。我還需要加入一個包含其他兩個表格的表格,以獲取新聞Feed中發佈的帳戶的用戶名。我有4個表,這將在該查詢中使用:
從動(具有帳戶的它遵循帳戶和類型被跟蹤列表用戶)
重要的列:[USER_ID,following_id,類型]
用戶(用戶可以按照其他用戶帳戶)
重要的列:[用戶名]
服務器(用戶也可以關注服務器帳戶。注意服務器對用戶是一對多的,因爲用戶可以創建0或多個服務器綁定到他們的帳戶)
重要的列:[標題]
News_Posts(這包含消息,帳戶類型(整數),以及poster_id)
重要的列:[poster_id,消息類型]
我無法弄清楚如何抓住對登錄用戶當前的新聞發佈。
查詢1:返回完整的新聞列表基於「類型」正確的用戶名0 =用戶,1 =服務器
SELECT news_posts.*, users.username FROM news_posts INNER JOIN users ON news_posts.poster_id=users.id WHERE news_posts.TYPE='0'
UNION
SELECT news_posts.*, servers.title FROM news_posts INNER JOIN servers ON news_posts.poster_id=servers.id WHERE news_posts.TYPE='1'
查詢2:返回帳戶的特定用戶(在1這種情況下ID)是以下
SELECT following_id, type FROM follower WHERE user_id='1'
我將如何合併查詢1查詢2,這樣只有news_post記錄,其中news_posts.poster_id =查詢2的結果。它必須使正確的用戶名是用來
編輯考慮到跟隨的類型:這裏是架構的一個粗略的版本:http://sqlfiddle.com/#!2/a48f3/1
模式公平的遊戲修改?例如,我可能會建議有一個帳戶表來存儲用戶和服務器;該表格將包含區分兩種(或更多)類型帳戶的類型列? – Alkini 2013-02-27 19:28:36
仍處於原型階段,所以我很樂意提出改進架構的建議。此外,這是一個非常粗糙的(只有主列)架構,因此它可以可視化:http://sqlfiddle.com/#!2/a48f3/1 編輯:我目前允許帳戶有多個服務器,這就是爲什麼我結構化他們分開。所以這是一對多的關係。 – MCG 2013-02-27 19:30:49