zhibo/test_user_43_follow.sql
2026-01-03 15:32:31 +08:00

99 lines
2.7 KiB
SQL

-- 测试用户 43 (xiaofeng) 的关注页面
-- 该用户关注了用户 41 (夏至已至),而用户 41 有一个正在直播的房间
SET @USER_ID = 43;
-- 1. 查看用户 43 关注了哪些人
SELECT
fr.followed_id as followed_user_id,
fr.followed_nickname,
u.is_streamer,
fr.follow_status,
fr.create_time as followed_at
FROM eb_follow_record fr
LEFT JOIN eb_user u ON fr.followed_id = u.uid
WHERE fr.follower_id = @USER_ID
AND fr.follow_status IN ('1', '关注')
AND fr.is_deleted = 0
ORDER BY fr.create_time DESC;
-- 2. 查看用户 43 关注的主播中,哪些有直播间
SELECT
u.uid as streamer_id,
u.nickname as streamer_name,
lr.id as room_id,
lr.title as room_title,
lr.is_live,
lr.view_count,
lr.online_count,
lr.create_time as room_created_at,
lr.started_at as live_started_at
FROM eb_follow_record fr
INNER JOIN eb_user u ON fr.followed_id = u.uid AND u.is_streamer = 1
INNER JOIN eb_live_room lr ON u.uid = lr.uid
WHERE fr.follower_id = @USER_ID
AND fr.follow_status IN ('1', '关注')
AND fr.is_deleted = 0
ORDER BY lr.is_live DESC, lr.started_at DESC;
-- 3. 查看用户 43 关注的主播中,哪些正在直播
SELECT
u.uid as streamer_id,
u.nickname as streamer_name,
u.avatar as streamer_avatar,
lr.id as room_id,
lr.title as room_title,
lr.view_count,
lr.online_count,
lr.like_count,
lr.started_at as live_started_at,
TIMESTAMPDIFF(MINUTE, lr.started_at, NOW()) as live_duration_minutes
FROM eb_follow_record fr
INNER JOIN eb_user u ON fr.followed_id = u.uid AND u.is_streamer = 1
INNER JOIN eb_live_room lr ON u.uid = lr.uid AND lr.is_live = 1
WHERE fr.follower_id = @USER_ID
AND fr.follow_status IN ('1', '关注')
AND fr.is_deleted = 0
ORDER BY lr.started_at DESC;
-- 4. 诊断:为什么可能看不到
-- 检查关注状态的值
SELECT
'关注状态检查' as check_type,
follow_status,
COUNT(*) as count
FROM eb_follow_record
WHERE follower_id = @USER_ID
GROUP BY follow_status;
-- 5. 检查被关注用户的主播状态
SELECT
'被关注用户检查' as check_type,
u.uid,
u.nickname,
u.is_streamer,
fr.follow_status
FROM eb_follow_record fr
LEFT JOIN eb_user u ON fr.followed_id = u.uid
WHERE fr.follower_id = @USER_ID;
-- 6. 检查直播间的 uid 关联
SELECT
'直播间关联检查' as check_type,
lr.id as room_id,
lr.title,
lr.uid as room_uid,
lr.is_live,
u.uid as user_uid,
u.nickname,
u.is_streamer
FROM eb_live_room lr
LEFT JOIN eb_user u ON lr.uid = u.uid
WHERE lr.uid IN (
SELECT followed_id
FROM eb_follow_record
WHERE follower_id = @USER_ID
AND follow_status IN ('1', '关注')
AND is_deleted = 0
);