2016-04-29 3 views
0

Как выбрать порядок данных в зависимости от количества строкКак выбрать порядок данных по количеству строк

Я хочу, чтобы выбрать порядок данных по количеству media_user_action строк, не знаю, как это сделать в одном из синтаксиса запросов

например
media_id 1 3 строки в media_user_action
media_id 2 1 ряд в media_user_action

возвращает данные
media_id 1 затем media_id 2

SELECT 
    m.* 
    FROM media m 
    LEFT JOIN media_user_action mua ON mua.media_id = m.id 

// ORDER BY COUNT(mua.*) count rows desc ? 

СМИ

id | 
1 
2 

media_user_action

id | media_id | user_id | type 
1 | 1  | 1  | 0 
2 | 1  | 13  | 0 
3 | 1  | 15  | 1 
4 | 2  | 16  | 0 
+0

почему downvote? пожалуйста, дайте мне знать – user1575921

+0

Я думаю, ваш вопрос непонятен. Вы можете объяснить это немного больше. –

+0

вопрос непонятный. может у объяснить больше –

ответ

3

Вы можете использовать COUNT в ORDER BY пункте:

SELECT m.id 
FROM media m 
LEFT JOIN media_user_action mua 
    ON mua.media_id = m.id 
    AND mua.type = 0 
GROUP BY m.id 
ORDER BY COUNT(mua.id) DESC 

Если вы хотите добавить дополнительное условие для media_user_action, добавьте его в пункте ON:

SELECT m.id 
FROM media m 
LEFT JOIN media_user_action mua 
    ON mua.media_id = m.id 
GROUP BY m.id 
ORDER BY COUNT(mua.id) DESC 
+0

спасибо за ответ, что 'GROUP BY <список всех столбцов СМИ здесь>', что в < >? ? и вы имеете в виду, что мне нужно использовать группу, если я хочу использовать счет в порядке? – user1575921

+0

Замените это на все столбцы 'media'. См. Мое обновление. –

+0

Я понимаю, спасибо вам столько – user1575921

Смежные вопросы