Порядок строк в таблице в зависимости от относительной таблицы - PullRequest
0 голосов
/ 25 января 2012

У меня есть две таблицы.Один с видео (lol_videos):

ID, заголовок, URL, ...

и таблица хитов (lol_hits):

ID, videoID, отметка времени

Я бы хотел отсортировать мои видео из таблицы видео в зависимости от того, сколько хитов у него есть (сохранено в lol_hits) и за определенный промежуток времени.

Я пробовал разные вещи, но я действительно могу 't я прав .. пока я просто получаю некоторые бесполезные ошибки mysql: (

$query = "SELECT `lol_videos`.*, COUNT(lol_hits.videoID) as hit_count".
" FROM `lol_videos`".
" WHERE published > $now AND pushed > 0".
" LEFT JOIN `lol_hits`".
" ON (`lol_hits`.videoID = `lol_videos`.ID)".
" ORDER BY hit_count DESC";
$result = mysql_query($query) or die(mysql_error());

Кто-нибудь получил предложение, как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 25 января 2012

Это должно работать:

SELECT v.*, v2.numHits FROM (
    SELECT videoID, COUNT(ID) 'numHits' FROM lol_hits GROUP BY videoID
) AS v2 
JOIN lol_videos v ON (v.ID = v2.videoID)
ORDER BY v2.numHits DESC;
0 голосов
/ 25 января 2012

Как то так?

SELECT * FROM lol_videos
LEFT JOIN lol_hits
ON lol_videos.ID = lol_hits.videoID
ORDER BY lol_hits.hit_count DESC;
...