数据库查询:从朋友那里获取更新

时间:2012-01-23 00:24:04

标签: multi-table

编辑:知道了!

SELECT `update`, `date` from updates, users_friends
WHERE updates.userID = users_friends.friendID
and users_friends.userID = "5"
and users_friends.status = "2"

我意识到我试图调用一个不存在的更新。为了解决这个问题,我创建了一个新的更新,这次是由ID为6的用户编写的。

-

我正在建立一个社交网站。我希望显示朋友的更新列表。我的数据库包含两个表来实现此目的:updates和users_friends。

这是我的问题:

SELECT'update' 来自更新 在哪里'updates.userID' (选择'friendID' 来自users_friends 'users_friends.userID'= $ myID 和'status'= 2);

(状态值2表示他们的友谊被批准)

-

- 表updates

的表结构

CREATE TABLE IF NOT NOT EXISTS updates(   update文本NOT NULL,   date时间戳NOT NOT DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,   userID int(11)NOT NULL,   PRIMARY KEY(dateuserID),   KEY fk_updates_users1userID) )ENGINE = InnoDB DEFAULT CHARSET = utf8;

-

- 表users_friends

的表结构

CREATE TABLE IF NOT NOT EXISTS users_friends(   userID int(11)NOT NULL,   friendID int(11)NOT NULL,   status int(1)NOT NULL DEFAULT'0',   PRIMARY KEY(userIDfriendID),   KEY fk_users_has_friends_users1userID) )ENGINE = InnoDB DEFAULT CHARSET = utf8;

我遇到的问题是我总是得到一个空集。我已将更新表的示例更新添加到userID = 5,并将示例行添加到users_friends表,其中用户6是用户5和myID = 6的朋友。

我的逻辑是否正确?我做错了什么?

1 个答案:

答案 0 :(得分:0)

SELECT `update`, `date` from updates, users_friends
WHERE updates.userID = users_friends.friendID
and users_friends.userID = "5"
and users_friends.status = "2"

我意识到我试图调用一个不存在的更新。为了解决这个问题,我创建了一个新的更新,这次是由ID为6的用户编写的。