【发布时间】:2012-12-15 13:10:32
【问题描述】:
我有这张表,我为我的 msn 应用程序保存用户列表。还有一张友谊表,它有两个来自用户列表的外键。
用户:id、姓名、在线、ip... 朋友:id1,id2
我想要特定 id 为好友的用户的信息。
我正在使用这个 sql 查询:
SELECT (latest_ip, email, online, pass, status)
from im.user JOIN im.friend ON user.id = friend.id1
WHERE user.id = 5
我错过了什么?
【问题讨论】:
-
哦,mysql 错误:错误代码:1241:操作数应包含 1 列
-
您缺少有关您的问题的一些信息,(1) 执行查询时会得到什么? (2) 你能显示具有所需输出的示例记录吗?
-
朋友表包含了关于哪个 id 与谁成为朋友的信息。它就像 id 5 的朋友和 id 12。我在这里看到的问题是 id 5 可能有不止一个朋友,所以 WHERE 部分包含多于一个 id。我想做的是检查朋友表中 id 为 5 的朋友,获取这些 id 并在用户表上查询它们以获取其他信息,如姓名、最新 ip 等。
-
我也在使用这个执行类似的查询: SELECT (latest_ip, email, online, pass, status) from im.user WHERE user.id = (SELECT id2 from im.friend WHERE id1 = 5)但问题是一样的,第二个查询可能会返回一个以上的 id