powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Получить список пользователей. Взявших менее 3 книг, но более 1.
7 сообщений из 7, страница 1 из 1
Получить список пользователей. Взявших менее 3 книг, но более 1.
    #39282919
mandarina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется две таблицы Пользователи (код_пользователя, фамилия), Выданные книги (код_книги, код_пользователя, дата_выдачи). Необходимо получить список пользователей. Взявших менее 3 книг, но более 1.
...
Рейтинг: 0 / 0
Получить список пользователей. Взявших менее 3 книг, но более 1.
    #39282937
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
select /**/ from users 
join (
  select user_id, count(0) as books_count from user_books 
  group by user_id
  having books_count > 1 and books_count < 3 -- same as books_count = 2
) t on t.user_id = users.id
...
Рейтинг: 0 / 0
Получить список пользователей. Взявших менее 3 книг, но более 1.
    #39282963
mandarina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij, а вы не могли бы объяснить действия?
...
Рейтинг: 0 / 0
Получить список пользователей. Взявших менее 3 книг, но более 1.
    #39282971
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В подзапросе группируются id пользователя и подсчитывается число встреченных строк в таблице для этого юзера. С помощью having, который работает после группировки, в отличии от where, отфильтровываем количество книг больше 1 и меньше 3.
Внешний запрос - вытянуть данные этих юзеров из таблицы пользователей.
...
Рейтинг: 0 / 0
Получить список пользователей. Взявших менее 3 книг, но более 1.
    #39282980
mandarina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij, а синтаксис для командной строки будет такой же?
...
Рейтинг: 0 / 0
Получить список пользователей. Взявших менее 3 книг, но более 1.
    #39283074
mandarina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij, а как можно отфильтровать по полю количество книг, если его нет?
...
Рейтинг: 0 / 0
Получить список пользователей. Взявших менее 3 книг, но более 1.
    #39283604
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mandarinaа как можно отфильтровать по полю количество книг, если его нет?а это поле - оно как пресловутый суслик: ты его не видишь, а он есть :)
Не путайте where и having. Where работает с полями исходных таблиц, и дествительно не может фильтровать "виртуальные" поля. Но having работает с полями, полученными в секции select. Количество книг там присутствует.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Получить список пользователей. Взявших менее 3 книг, но более 1.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]