【发布时间】:2013-10-17 16:49:39
【问题描述】:
我正在开发一个类似于 Twitter 的网站。您可以关注他人并发布消息。
我想选择一个我不关注的人被我关注的人关注。 希望你明白那句话!
这是我目前使用的 SQL 查询,但它不能正常工作。它仍然显示我已经关注的人。
SELECT a.naar_id
FROM wievolgtwie a, wievolgtwie b
WHERE a.van_id = $row[0]
AND b.van_id = $_SESSION[id]
AND a.naar_id != $_SESSION[id]
AND a.naar_id != b.naar_id
LIMIT 0, 1;
解释:
naar_id后面是van_id的人的id。
van_id是关注naar_id的id。
(van_id, naar_id)
所以行 (1, 3) 和 (2, 3) 表示 id 1 和 2 都跟随 id 3。
wievolgtwie 是包含“whofollowswho”信息的表格。
van_id, naar_id
+------+------+
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 4 |
| 3 | 4 |
| 3 | 2 |
+------+------+
$row[0] 是你关注的人,我想从中选择他们关注的人,但你没有。
$_SESSION[id] 是您的 id(登录的人)。
所以如果$row[0] = 2 并且登录的人的 id 为 1 'me';我想得到 id 4(因为 id 1 是我,我不关注 id 4)(见示例表)
有人知道我想要达到的目标的正确查询吗?
提前致谢,
杰伦
【问题讨论】:
-
您从
SELECT a.naar_id开始,您将其定义为“您关注的人的 ID”。这不能保证总是返回你已经关注的人的 id 吗?还是我只是不明白你的表? -
是的,抱歉,应该是 'van_id 后面的人的 id'
-
我添加了一个示例表。我希望现在更清楚一点。