一到多个查询

时间:2009-09-26 20:50:35

标签: php sql mysql

好吧,我刚刚完成了一张桌子的规范化。当我这样做时,我没有真正考虑的是我现在有一对多的关系......因为我的sql知识非常非常有限,我不确定如何处理这个问题。

我尝试通过外键进行分组,但它只返回最后一个匹配的结果,我想返回它们以及只有一个fk的任何结果。

期望的输出:

   Site         Found On             Score
   example.com  sourece1, source2    400
   example.net  sourece1             23
   example.org  sourece2             23

其中: siteScoring.url =找到 siteScoring.votes =得分 media.file_url = site

2 个答案:

答案 0 :(得分:1)

Psuedo SQL直到细节到达:

  SELECT t.file_url,
         CONCAT_WS(',', ss.url) 'Found On',
         SUM(ss.votes)
    FROM MEDIA t
    JOIN SITESCORING ss ON ss. = m. --just missing JOIN criteria
GROUP BY t.file_url

答案 1 :(得分:1)

如果您使用的是MySQL 5+,则可以使用GROUP_CONCAT(source)(在select子句中)在当前Found On查询中创建GROUP BY

编辑:我的错误是MySQL 4.1+:group_concat