2013-08-21 34 views
0

所以我有两个表设置:Select语句其中id是在其他表

========================= 
|  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   | 
===================================== 

我想要做的就是创建一个显示了“股”饲料,但只适用于人,你是以下。理想情况下,我想用一个查询来做到这一点。

这里是一个(显然是不正确的),我试过。为了这个例子,假设:user_id是当前用户(或追随者)的ID。

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

回答

2

您可以连接表的东西,如:

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

这是使用隐含连接语法,很多人喜欢明确的变体,但它是不是真的有必要在这个简单的例子。

+1

我认为它是's.user_id = f.following_id' –

+1

@ 491243,绝对正确,调整为适合并添加到user_id检查中。也许下一次我会在吐出我的答案之前阅读完整的问题:-) – paxdiablo

+0

美 - 谢谢。 –