2012-08-12 71 views
1

用戶在我的網站上可以有兩種類型的關係。關注或朋友。我想用與他們有關係的用戶的帖子來填充每個用戶的新聞提要。到目前爲止,我有這個連接:使用MySQL連接

SELECT * 
FROM posts a 
     LEFT JOIN relationships b 
      ON a.user_id = b.user_2 
WHERE b.user_1 = $user_id AND 
    b.status IN (1,3,4) OR a.user_id = $user_id 
ORDER BY a.post_id DESC 

b.status是從我的關係表,確定兩個用戶之間的關係的狀態欄。 1位正在跟隨,3位是好友,4位正在跟隨待處理的好友請求。我的加入效果很好,除了它沒有考慮到我的「關係」表中只有一行可以代表任何兩個人之間的朋友。有兩行跟隨。第一個用戶1(標記)跟隨用戶2(無光澤)和用戶2(無光澤)跟隨用戶1(標記)。但是有了友誼,它可以是一排或一排,狀態爲3.首先,這是一種聰明的做法嗎?或者我應該爲這種類型的pf關係也有兩行?其次,我如何才能讓我的JOIN QUERY也抓取user_1和user_2之間關係以及狀態= 3的帖子?不考慮user_1和user_2的訂單嗎?

表結構:

Posts: 

| user_id | post_id | story | 
----------------------------- 
| 1  | 1  | text. | 
----------------------------- 

Relationships: 

| rel_id | user_1 | user_2| status | 
-------------------------------------- 
| 1  | 1  | 2 | 3 | 
-------------------------------------- 

回答

1

在你WHERE聲明,做這樣的事情,所以你匹配的關係表列兩種。 OR得到他們兩個。

WHERE b.user_1 = $user_id OR b.user_2 = $user_id 

祝你好運!