【发布时间】:2013-03-06 12:07:29
【问题描述】:
表:frei_session
id username accountId status status_mesg
14 Sumit Bijvani 50 0 I am available
16 Dilip Borad 49 1 I am available
15 Karan Bijvani 51 1 I am available
表格:用户
accountId friends userImage
49 50,52 49.jpg
50 49,52,51,44 50.jpg
51 50 51.jpg
我有2张表,frei_session有在线用户记录,users表有用户和好友的数据,ID用逗号隔开。
我想根据 users 表的 friends 列从 frei_session 表中检索数据。
前任
如果user 49 在线,我想要输出,如下所示
id username accountId status status_mesg userImage
14 Sumit Bijvani 50 0 I am available 50.jpg
因为用户 50 和 52 是用户 49 的朋友,但现在只有用户 50 在线
我尝试了以下查询。但它显示错误的 userImage。
SELECT b.*, a.userImage
FROM users a
INNER JOIN frei_session b
ON FIND_IN_SET(b.accountID, a.friends) > 0
INNER JOIN
(
SELECT accountID, username, MAX(id) id
FROM frei_session
GROUP BY accountID, username
) c ON b.accountID = c.accountID AND
b.username = c.username AND
b.id = c.id
WHERE b.status = 0 AND
a.accountID = 49
【问题讨论】:
-
这是因为每个
accountid, username使用MIN而不是MAX的frei_session 中的重复值将为您提供您正在寻找的输出:like this。对吗?