mysql group_concat我做错了什么

时间:2013-08-28 04:40:30

标签: mysql subquery

我正在尝试使用这个简单的子查询来获取特定用户的所有喜爱用户

select * from users u 
where u.user_id in 
(
    select GROUP_CONCAT(f.favorite_id SEPARATOR ',') as favourites 
    from favourite_user f
    where f.user_id in(14) group by user_id 
) 

当我运行子查询select GROUP_CONCAT(f.favorite_id SEPARATOR ',') as favourites from favourite_user f where f.user_id in(14) group by user_id时,它会给我结果6,8,11,10,13,15,7,12

当我运行此查询select * from users u where u.user_id in (6,8,11,10,13,15,7,12)时,它返回 7行结果

但是当我运行上面提到的主要查询时,它只是给我 1行(第一行)而不是7。

任何人都可以解释我做错了什么。我知道这也可以通过连接完成,但我想知道为什么这种方法不起作用

提前谢谢

1 个答案:

答案 0 :(得分:1)

您不需要GROUP_CONCAT()。试试

select * 
  from users
 where user_id in 
(
    select favorite_id 
      from favourite_user
     where user_id = 14
)

这是 SQLFiddle 演示