2013-06-02 49 views
2

我目前正在嘗試爲我的網站製作轉推系統,但是我遇到的問題是我有轉發表單獨的帖子表,我無法找到一個簡單的將它們合併在一起的方式。如何從多個表格中選擇數據

這是我的表結構

retweets { 
    retweet_id, 
    retweet_post_id, 
    retweet_user_id, 
    retweet_time 
} 
posts { 
    post_id, 
    post_type, 
    post_user_id, 
    post_data, 
    post_private, 
    post_poster_ip, 
    post_time 
} 

所以我試圖讓這兩個表,並讓他們通過最新的(因此,如果轉推是最近它會首先顯示該行中有序)。我怎麼能這樣做?或者將它全部在一張桌子內完成會更有效率嗎?

+0

您在您的SQL查詢中使用JOIN –

+1

嘗試使用一個表,然後一旦您有該工作嘗試使用兩個 – pattyd

回答

0

您需要使用INNER JOIN,通過適當的外鍵連接表:

http://www.w3schools.com/sql/sql_join.asp

還是會是:

SELECT 
    * 
FROM 
    posts 
INNER JOIN 
    retweets 
ON 
    posts.post_id=retweets.retweet_post_id 

這裏閱讀關於如果有必要的JOIN在一張桌子內完成全部工作更有效率?

閱讀關於database normalization瞭解如何正確分割表格。所以你可以避免anomalies並減少重複信息的數量。

0

您可以使用JOIN到集結合(基於關閉匹配retweet_idpost_id的),並使用基於ORDER BYretweet_time排序。

SELECT * 
FROM retweets 
JOIN posts 
ON retweets.retweet_id=posts.post_id 
ORDER BY retweet_time DESC