关于在SQL查询中对结果进行分组

时间:2012-03-05 15:15:59

标签: php sql

对不起,如果这是一个非常愚蠢的问题。我有一个包含3列的表:id,user_id和article_id,表示用户和文章表之间的多对多关系。我正在使用PHP和MySQL

示例记录:

  • id:1 user_id:5 article_id:6(表示用户5喜欢第6条)
  • id:2 user_id:1 article_id:6
  • id:3 user_id:2 article_id:1
  • id:4 user_id:3 article_id:3

我想通过文章对结果进行分组,并得到一个像这样的数组:

array[6] = {5,1};
array[1] = {2};
array[3] = {3};

所以我可以方便地吸引喜欢每篇文章的用户。问题是,哪个是实现它的最佳方法?任何帮助将非常感激。感谢

2 个答案:

答案 0 :(得分:2)

您可以在PHP上迭代结果并将其分组到数组中,或者使用GROUP_CONCAT然后使用explode

答案 1 :(得分:0)

不熟悉“Doctrine”语法,如果您能够提供查询字符串,您应该能够通过

获得结果
select article_id, group_concat( user_id ) as LikedByUsers
   from YourTable
   group by article_id

第一列将包含文章ID,第二列包含您喜欢的用户的逗号分隔列表。