MYSQL查询多个表条件sql

时间:2016-07-05 01:34:53

标签: mysql

我有一个用于帖子的表格表和一个用于朋友列表的表格。

Posts:
id | PosterUsername | title | info1 | info2 | etc.

Friends:
user | friend | blocked(boolean)

所以基本上我正在寻找一个sql查询,我可以过滤结果,以便活动用户只能查看由将其添加为朋友的人发布的帖子。

类似......

SELECT * FROM Posts WHERE
FROM Friends user = PosterUsername AND friend = 'activeUsername' AND BLOCKED = '0'

我可以想到一种方法,我基本上存储了添加了' activeUser'作为变量中的朋友然后当我循环显示帖子时我可以检查它并且只显示满足条件的那些。但我不太熟悉MYSQL命令的进展,我猜有更好的方法。

更新:

enter image description here

2 个答案:

答案 0 :(得分:2)

此处的一个选项是将FriendsPosts表连接在一起,将用户的朋友与这些朋友撰写的帖子联系起来:

SELECT p.*
FROM Friends f INNER JOIN Posts p
    ON f.friend = p.PosterUsername
WHERE f.user = 'current user' AND f.blocked = FALSE

答案 1 :(得分:-4)

由于我在手机上没有编写实际代码,您可能会:

Select *
from posts 
where posterid in (
    select friendid 
    from friends 
    where userid =loggedinuserid)

这样的事情应该可以解决问题。

相关问题