MYSQL - 如何通过子选择检查用户是否关注其他用户?

时间:2013-06-14 13:48:14

标签: mysql subquery

我正在获取活动(活动)列表并使用左连接来获取创建活动的用户数据(用户)。在我的应用程序中,用户可以相互关注。

这是我当前的查询,它会抓取您自己未发布的所有活动($ user_id)

SELECT 
     activities.id, activities.user_id, users.id, users.name
FROM 
     activities
LEFT JOIN 
     users on activities.user_id = users.id
WHERE 
     users.id != $user_id

除了活动+用户表之外,我的应用程序中还有另一个名为followers的表:

followers

id | user_id_1 | user_id_2 | followed_back
 1      1           3             1       
 2      2           3             0
 3      3           1             1

我需要检查您($ user_id)是否跟踪了加入每个活动的特定用户,并且可能会调用此新字段“user_followed”,表示true / false / null值?

例如,我是user_id = 1.基于上表,这意味着我已经关注了user_id 3.当获取活动并且user_id 3加入/负责时,新字段“user_followed”将为真。

因此,我认为我需要合并另一个SELECT查询,检查是否正在关注用户:

(SELECT 
     * 
FROM 
     followers
WHERE
     user_id_1 = $user_id AND user_id_2 = users.id
)

我在很大程度上不确定如何将其合并到我的初始查询中并创建一个表示是或否的新字段。任何帮助将不胜感激!

0 个答案:

没有答案