显示我关注的用户的状态

时间:2012-05-11 10:34:39

标签: php mysql

我想问,我真的需要答案。

这里我在一个数据库中有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

现在的问题是,如何在仅订阅的人中显示标题图片,并且不在未订阅的人中显示标题图片,

3 个答案:

答案 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());

开始