0

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

在这里,我在一个数据库中有 3 个表。

1 # users - id_user (int) - username (text)

2 # status_update - id_status (int) - id_user (int) - username (text) - status (text)

3 # follow - id_user (int) - id_user_follow (int) - username (text) - username_follow (text)

问题是,如何显示我关注的用户的状态..而不显示我未关注的用户的状态。?? .. 使用 php 和 mysql,请,需要帮助。

新问题

对不起,我还是不明白,这是我真正的桌子

请帮忙,我仍然不明白[我以前的帖子] [1]中的答案,这里我有3个表。

1#简介
- id_user
- 用户名
- 电子邮件

2#图片
- id_picture
- id_user
- 标题

3 # 订阅
- id_user_a
- Id_user_b(在 user_a 订阅的人)
- 日期

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

4

3 回答 3

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;

您应该考虑规范化您的表,您不需要在每个表中复制用户名。

于 2012-05-11T10:51:22.310 回答
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
于 2012-05-11T11:05:20.957 回答
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());

于 2012-05-11T10:52:48.440 回答