使用MySQL和PHP在两个表之间进行数学运算


Math between two tables with MySQL and PHP

我的SQL数据库中有两个表,一个用于用户发送的照片,另一个用于照片在我的应用程序上的投票。我需要从"照片"表中提取30张照片,这些照片在"选票"表上的票数最多。

有没有一种方法可以在单个查询中完成?

您应该能够使用这样的查询:

select
    a.photoFileName
from
    photos a
        join votes b
            on a.photoId=b.photoId
order by 
    b.voteCount desc
limit 30

根据链接字段上的确切列名调整关键点。

这假设投票表有一个数字列(voteCount),其中包含该图像的投票计数。

类似这样的事情(如果每个投票都是单独存储的),但要进行自己的调整:

SELECT
  p.id,
  COUNT( v.id )
FROM
  photos p
JOIN
  votes v ON p.id = v.photo_id
ORDER BY
  COUNT( v.id ) DESC
GROUP BY
  v.photo_id
LIMIT 30;

PS:我没有测试查询,只是给你举了一个例子