Mysql 带联接的特定选择
为什么大家, 我正在尝试获取不同用户id的列表,其中:Mysql 带联接的特定选择,mysql,join,Mysql,Join,为什么大家, 我正在尝试获取不同用户id的列表,其中: 进行了现场登记 和我在同一场比赛中 是我的朋友(他们的FBU用户\u uid在我的FBU朋友字段中) 在同一场比赛中超过3名 下面是数据库的设计 具有值的字段fb_的示例: 14303441766466683021471539456546098131 我已经检索到了实时匹配,有3个以上不同的用户,但我不知道如何检查他们是否是我的朋友:( 这是我尝试过的,但它没有返回预期的结果 SELECT DISTINCT f.id FROM
- 进行了现场登记
- 和我在同一场比赛中
- 是我的朋友(他们的FBU用户\u uid在我的FBU朋友字段中)
- 在同一场比赛中超过3名
SELECT DISTINCT
f.id
FROM
fanusers f
WHERE
f.fb_user_uid IN(
SELECT
f1.fb_friends
FROM
fanusers f1
JOIN checkins c1 ON f1.id = c1.fanuser_id
WHERE
c1.ctype = 'live'
AND
c1.match_id IN(
SELECT
c2.match_id
FROM
checkins c2
GROUP BY
c2.match_id
HAVING
COUNT(*)> 3
)
)
要准确了解fanusers的表结构,请参见下图:
除了我的解决方案,它很难看,也很慢:(
有什么想法吗?谢谢。Nooooooooooooooooooooooooooooooooooooooooooooooooooooopops,请给我们看一下表的结构好吗?您的图像也丢失了,您与朋友打交道时的结构很差……它应该是用户和朋友ID的单独表(可能是活跃朋友或不活跃朋友的状态)通过这种方式,它可以轻松地查询/连接,而不是使用LIKE查找隐藏在字符串中的内容。您将获得一个大表,性能将受到巨大的影响。