编辑:明白了!
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,
userID
int(11) 不为空,主键(date
,userID
),键fk_updates_users1
(userID
))引擎=InnoDB 默认字符集=utf8;
--
-- 表的表结构users_friends
如果不存在则创建表users_friends
(
userID
int(11) NOT NULL,
friendID
int(11) NOT NULL,
status
int(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 的朋友。
我的逻辑正确吗?我究竟做错了什么?