选择id在其他表中的语句

时间:2013-08-21 02:22:14

标签: php mysql

所以我设置了两个表:

=========================
|        Shares         |
=========================
| user_id | other stuff |
=========================
| 1       | bla bla bla |
| 2       | bla bla bla |
=========================

=====================================
|             Followers             |
=====================================
| id   | follower_id | following_id |
=====================================
| 1    | 7           | 1            |
| 2    | 7           | 2            |
=====================================

我想要做的是创建一个显示“分享”的Feed,但仅限于您关注的人。理想情况下,我也希望通过一个查询来执行此操作。

这是我尝试的(显然是不正确的)事情。为了这个例子,假设:user_id是当前用户(或跟随者)的ID。

select * from shares where count(select * from followers where follower_id = :user_id and following_id = share.id) > 0

1 个答案:

答案 0 :(得分:2)

您可以使用以下内容加入表格:

select s.* from shares s, followers f
where f.follower_id = :user_id
  and s.user_id = f.following_id

那是使用隐式连接语法,很多人更喜欢显式变体,但在这个简单的情况下并不是真的有必要。