2014-10-29 51 views
0

我有3張桌子。首先是用戶,用戶不同。第二個帖子上有帖子,帖子中有來自table1的海報ID和帖子內容。我可以用第三張表格發出兩張WHERE和第二張的值嗎?

第三張表有好友列表。在形式:

+------------+----------+ 
| userID | friendID | 
+------------+----------+ 
|   4 |  3 | 
|   3 |  4 | 
|   1 |  3 | 
|   3 |  1 | 
+------------+----------+ 

現在什麼,我試圖找出是如何讓這個當USER1看帖子,他只看到的只有他的朋友們的帖子。

我得到儘可能創造這樣的:

SELECT posts.IDpost, users.name, posts.created, posts.content FROM users JOIN posts ON users.id=posts.poster WHERE posts.poster= ?

我想我會不得不增加這樣的事情:

WHERE friendslist.user= user1; 

但我無法弄清楚如何將其添加,試圖谷歌搜索它沒有運氣,我不知道如果我根本無法弄清楚如何搜索它或它是不可能的。我可能不得不在最後使用JOIN,但是我不知道如何。 那麼我怎樣才能連接3個表中的值和2個WHERE命令? 希望有人瞭解我的問題,並能夠提供幫助。

回答

0
SELECT posts.IDpost, users.name, posts.created, posts.content 
    FROM users 
     JOIN posts 
      ON users.id=posts.poster 
    WHERE posts.poster in (
     SELECT friendID 
     FROM friendslist 
     WHERE userID = user1 -- This would be the ID of the user you're querying for. 
     ) 

這是SQL Server的語法,但這個想法應該是一樣的。

+0

非常感謝,它的工作。還學到了一些新東西。高興地看到我正朝着正確的方向前進。 :) – Martin 2014-10-29 16:32:07

+0

很高興聽到它!如果這對您有幫助,請將其標記爲您接受的答案。謝謝! – 2014-10-29 16:33:37

+0

既然你沒有使用任何特定的函數,那麼這是ANSI SQL'99,並且可以在遵循這個標準的任何數據庫中工作,這是幾乎所有的時間。 :) – 2014-10-29 16:36:46

相關問題