我有一张表,其中包含以下行...
ID | TITLE | ARTIST | ADDED | HITS | HITS THIS WEEK
--------------------------------------------------------------------------------
7505 | Track 2 | Artist 1 | 2009-08-24 10:32:41 | 1539 | 2
7483 | Track 2 | Artist 1 | 2009-08-23 16:58:35 | 1450 | 3
7324 | Track 1 | Artist 1 | 2009-08-14 11:28:18 | 5291 | 1
7320 | Track 1 | Artist 1 | 2009-08-14 10:24:17 | 2067 | 1
我想要做的是让重复项加起来hits
和hits this week
并显示为一行。
我想获取mysql数据(带有重复项),然后使用php我想将重复项总结为一行用于echo'ing。
有人能告诉我怎么会这样做吗?
编辑:
继承我当前的SQL查询...
SELECT `files`.`file_id` , `files_meta`.`title` , `files_meta`.`artists` , `files`.`added` , `files`.`uniquehits` , `files`.`uniquehits_week` , `files_meta`.`filename`
FROM promo_artists
INNER JOIN promo_files ON promo_artists.id = promo_files.artist_id
INNER JOIN files ON files.file_id = promo_files.file_id
INNER JOIN files_meta ON files.file_id = files_meta.file_id
WHERE username = '$username' ORDER BY `files`.`added` DESC
答案 0 :(得分:2)
我倾向于在SQL中这样做:
SELECT track, artist, SUM(hits) AS hits, SUM(hits_this_week) AS hits_this_week
FROM Atable
GROUP BY track, artist;
这节省了必须在PHP中进行计算,并减少了PHP和DBMS之间的流量。
答案 1 :(得分:0)
foreach($rows as $row) {
$data[$artist][$track] += $hits;
}