编辑:明白了!
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
如果不存在则创建表updates(
update文本不为空,
date时间戳不为空,默认 CURRENT_TIMESTAMP 更新 CURRENT_TIMESTAMP,
userIDint(11) 不为空,主键(date,userID),键fk_updates_users1(userID))引擎=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 的朋友。
我的逻辑正确吗?我究竟做错了什么?