我想问,我真的需要答案。
这里我在一个数据库中有3个表。
1#个用户 - id_user(int) - 用户名(文字)
2#status_update - id_status(int) - id_user(int) - 用户名(文字) - 状态(文本)
3#跟随 - id_user(int) - id_user_follow(int) - 用户名(文字) - username_follow(text)
问题是,如何显示我关注的用户的状态..并且不显示我不遵循的用户的状态。 ?? ..请使用php和mysql,需要帮助。
请帮助,我仍然不理解[我以前的帖子] [1]中的答案,这里有3张桌子。
1 # profile - id_user - username - email 2 # picture - id_picture - id_user - the title 3 # subscribe - id_user_a - Id_user_b (people who subscribe at user_a) - date
现在的问题是,如何在仅订阅的人中显示标题图片,并且不在未订阅的人中显示标题图片,
答案 0 :(得分:1)
SELECT u.username, s.status
FROM users u
LEFT JOIN follow f ON (u.id_user = f.id_user_follow)
LEFT JOIN status_update s ON (u.id = s.user_id)
WHERE f.id_user = USER_ID;
您应该查看规范化表格,不需要在每个表格中复制用户名。
答案 1 :(得分:1)
首先,您应该修复数据库结构。这是我的建议:
users - id (int), username (varchar)
status_updates - id (int), users_id (int), status (text)
follow - users_id, following_users_id
请注意,您不应在每个表中保存用户的用户名,只能将其保存在users
表中。此外,用户名应为varchar
类型。
这是您在固定数据库中的查询:
SELECT u.username, s.status
FROM users u
LEFT JOIN follow f ON u.id = f.following_users_id
LEFT JOIN status_updates s ON u.id = s.user_id
WHERE f.user_id = USER_ID
答案 2 :(得分:0)
SQL:SELECT status FORM status_update AS s LEFT JOIN follow AS f ON s.id_user = f.id_user_follow WHERE f.id_user = 'YOUR_ID' LIMIT 0,5
比在PHP中,它取决于你是否已经连接到Db ..
作为草稿,您可以从var_dump($query->result());