我想查看所有关注我或其他用户的用户。
我已经使用了 3 张桌子
用户
- ID
- 用户名
用户关注
- ID
- 用户身份
- follow_id
- 日期
图片
- ID
- 用户身份
- 图片
我试图获取上传最后一张图片的用户名,并且我需要我和关注者的状态来查看我是否已经关注他们。
我的查询写在 Mysql 上:
SELECT
u.id AS user_id,
u.username,
i.image,
t.id AS STATUS
FROM
users AS u
INNER JOIN (user_follow AS f)
ON (u.id = f.user_id)
LEFT OUTER JOIN images i
ON i.id =
(SELECT
b.id
FROM
images AS b
WHERE f.user_id = b.user_id
ORDER BY b.id DESC
LIMIT 1)
LEFT OUTER JOIN user_follow t
ON t.id =
(SELECT
m.id
FROM
user_follow m
WHERE user_id = 3
AND follow_id = u.id)
WHERE f.follow_id = 7
AND f.user_id NOT IN (7, 3)
GROUP BY f.user_id
我的用户 ID - 3;我观察使用 id - 7 关注用户的用户
输出是:
Array
(
[0] => Array
(
[user_id] => 6
[username] => 6666
[image] => flw3utn9igiqh7dtt2o61ydf8_174.jpeg
[status] => 226
)
)
我认为我的查询太高了,我不知道如何简单地检查状态并输出 1 或 0 。现在,如果“关注”,我会得到一个关注行 ID,如果没有,则为空。如果您向我展示如何优化我的查询,我也会很高兴。