2

我有一个图像网站,用户可以在其中将图像上传到具有基本功能的公共组,例如喜欢等。我目前正在为所述组构建一个统计页面,理想情况下需要一个可以从所有图像中获取所有喜欢的单一查询在一组。

表格(下面有示例数据)

Group_images: ID | GROUP_ID | IMAGE_ID | TIMESTAMP
               1 |    1     |    10    | 1346256053


Likes: ID | USER_ID | IMAGE_ID | TIMESTAMP
        1 |    1    |   10     | 1346256090

Images : ID | HEADING | UPLOADER | FILENAME | EXT | TIMESTAMP
         10 | Cats    |    4     | 82375dss | .png| 134625400

所以理论上它应该做这样的事情,

group_images在where = '$id'中搜索任何图像group_id--> 收集链接到该组的所有图像 -->通过搜索与第一个查询likes匹配的任何图像来搜索与该组关联的所有喜欢image_id.

我希望我已经说清楚了,如果没有,请随时提出更多问题,我会用您需要的更多详细信息更新问题。谢谢你。

编辑 我在表格下方添加了示例数据,我想要实现的是能够从组 id = 1 的所有喜欢中查看所有 user_id。

4

2 回答 2

0

您想使用一个非常基本的 SQL 概念,称为 JOIN聚合(COUNT, GROUP BY,以及您现在不需要的大量其他概念)。

SELECT
   HEADING, UPLOADER, FILENAME, EXT, COUNT(Likes.*)
FROM
   Group_Images gi
   JOIN Images i ON (gi.IMAGE_ID = i.ID)
   JOIN Likes l ON (i.ID = l.IMAGE_ID)
WHERE
   gi.ID = ?
GROUP BY
   i.ID
于 2012-08-29T16:05:36.783 回答
0

设法通过一个简单的子查询来做到这一点。感谢您的所有回答。

于 2012-08-29T18:02:48.100 回答