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 的用户编写。

--

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

这是我的查询:

SELECT 'update' from updates WHERE 'updates.userID' in (SELECT 'friendID' from users_friends WHERE 'users_friends.userID' = $myID and 'status' = 2);

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

--

-- 表的表结构updates

如果不存在则创建表updatesupdate文本不为空, date时间戳不为空,默认 CURRENT_TIMESTAMP 更新 CURRENT_TIMESTAMP, userIDint(11) 不为空,主键(dateuserID),键fk_updates_users1userID))引擎=InnoDB 默认字符集=utf8;

--

-- 表的表结构users_friends

如果不存在则创建表users_friends( userIDint(11) NOT NULL, friendIDint(11) NOT NULL, statusint(1) NOT NULL DEFAULT '0', PRIMARY KEY ( userID, friendID), KEY fk_users_has_friends_users1( userID)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

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

我的逻辑正确吗?我究竟做错了什么?

4

1 回答 1

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

I realised I was trying to call an update that didn't exist. In order to fix the problem I created a new update, this time written by user with id 6.

于 2012-01-23T10:18:18.970 回答