2014-10-29 48 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

相关问题