我有关于mysql的问题。
我有几张像tbl_follow,tbl_user,tbl_post_like,
这样的表现在我想要的是我的查询应该返回如下结果:
我想要一个表中的用户ID,用户名,用户图像,用户状态 - > tbl_user, 只有当表“tbl_follow”中的“estatus”列包含值为“Active”时,我才想要跟随其他朋友(其他用户)的用户,否则如果存在“非活动”值,那么它应该返回0,因为我已编码在查询中。
tbl_follow:1.iFollowID,2.iUserID,3。iFriendID,4。eStatus
tbl_post_like:1。iPostLikeID,2。iUserID,3。iPostID
tbl_user:1.iUserID,2。vUsername,3。vImage,4。vState
现在我使用的简单查询是:
SELECT u.iUserID,
u.vUsername,
u.vState,
u.vImage,
(SELECT IF(
(SELECT iFollowID
FROM tbl_follow
WHERE iUserID =249
AND iFriendID = 250
AND eStatus = 'Active')!='', 1,0)
FROM tbl_follow) AS is_follow
FROM tbl_user u
INNER JOIN tbl_post_like l ON u.iUserID=l.iUserID
WHERE l.iPostID=21
答案 0 :(得分:0)
与使用其他联接相比,不确定这方面的效果,但希望它可以正常工作:
尝试:
SELECT u.iUserID,
u.vUsername,
u.vState,
u.vImage,
IF(EXISTS
(SELECT iFollowID
FROM tbl_follow
WHERE iUserID =249
AND iFriendID = 250
AND eStatus = 'Active'), 1,0) AS is_follow
FROM tbl_user u
INNER JOIN tbl_post_like l ON u.iUserID=l.iUserID
WHERE l.iPostID=21