#mysql
#mysql
Вопрос:
Допустим, у меня есть две таблицы. Альбомы и картинки. Записи в таблице Albums имеют отношение «один ко многим» с записями в таблице Pictures.
Мне нужно иметь возможность получить количество альбомов x и количество изображений, связанных с каждым альбомом, чтобы я мог сортировать по количеству изображений.
Каков наилучший способ сделать это? Можно ли это сделать с помощью одного запроса или мне нужно будет выполнить несколько запросов?
Комментарии:
1. Вам просто нужно количество изображений в альбоме? или вы хотите, чтобы фактические изображения также были перечислены в каждой строке?
2. Было бы неплохо иметь фактические изображения, а также число, но, похоже, это нужно будет делать в отдельных запросах..
Ответ №1:
Вы должны иметь возможность использовать агрегатную функцию / групповое предложение для выполнения этого, например:
SELECT a.name, COUNT(p.id)
FROM Albums a LEFT JOIN Pictures p on a.id = p.album_id
GROUP BY a.name
ORDER BY COUNT(p.id) DESC
LIMIT 10