Сортировка по колличеству

Special_Jacky

Новичок
Здравствуйте есть такая база:
idAuthorBookName
1ABook1
2BBook2
3BBook3
4CBook4
5BBook5
6ABook6



как отсортировать чтоб вначале выводились авторы с наиболее большим колличеством книг, и шло на уменьшение?
 

riff

Новичок
А следующий вопрос будет "почему сайт тормозит?".)
Предлагаю добавить поле "books_count" к таблице авторов.
 

Special_Jacky

Новичок
Не понимаю вашего предложения? в таблице предположим 2000 строчек, добавляю столбец books_count и что?
 

riff

Новичок
Ну кто же так делает. Вся информация об авторах должна быть в одной таблице, о книгах - в другой. Я на это расчитывал.
А так не знаю ответа на твой вопрос.
 

Special_Jacky

Новичок
Та вот так сделали таблицу тупо) а как если в разных таблицах, можешь рассказать это нужно join использовать?
 

Special_Jacky

Новичок
Из этой таблицы в принципе можно получить структуру с помощью count(*), подсчитать совпадения по авторам и вывести число совпадений, сколько раз автор встречается в таблице, столько и книг у него, ну а дальше как вывести не могу понять.
 

riff

Новичок
если в разных таблицах, можешь рассказать это нужно join использовать?
SELECT * FROM authors
INNER (или LEFT) JOIN books ON authors.id = books.author_id
 
Последнее редактирование:

riff

Новичок
Из этой таблицы в принципе можно получить структуру с помощью count(*), подсчитать совпадения по авторам и вывести число совпадений
в принципе да, но зачем дёргать каждый раз count(*) если можно просто, при добавлении книги, увеличивать счётчик books_count в таблице авторов.
 

Special_Jacky

Новичок
Я это понимаю, нам нужно чтоб запрос отобрал все записи Писателя "А" у которого 2 книги, так же писателя В у которого 3 книги и вывел их по мере большего количества книг сверху, те у кого книг меньше внизу
 

Special_Jacky

Новичок
Если выводить просто то выходит:
id author book
1 A Book1
2 B Book2
3 B Book3
4 C Book4
5 B Book5
6 A Book6

а нужно:
id author book
2 B Book2
3 B Book3
5 B Book5
1 A Book1
6 A Book6
4 C Book4
 
Сверху