SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.03.2017 19:35:09

Тарас
Участник
Зарегистрирован: 03.03.2017
Сообщений: 5

Количество повторений в подзапросе

таблица dv_main с полями uid,tp_id    (id юзера и id тарифа соответственно)
таблица users_pi с полями uid,city      (id юзера и его город соответственно)
таблица tarif_plans с полями  id,name  (id тарифа и название соответственно )

Нужно вывести список id и названий тариф, которые встречаются у юзеров из конкретного города + количество юзеров с соответственным тарифом.
По запросу ниже вывожу id и тариф, а вот как достать количество?

SELECT id,name FROM tarif_plans  WHERE id IN
(SELECT tp_id FROM dv_main
JOIN users_pi  ON dv_main.uid=users_pi.uid
  WHERE city LIKE '%city%'  
ORDER BY tp_id)


Пока что  отдельно запускал подзапрос с полем count(tp_id), но есть ли возможность сделать все одним запросом?

Неактивен

 

#2 24.03.2017 07:04:12

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Количество повторений в подзапросе

да, join 3ех таблиц и группировка по тарифу

Неактивен

 

#3 24.03.2017 14:04:08

Тарас
Участник
Зарегистрирован: 03.03.2017
Сообщений: 5

Re: Количество повторений в подзапросе

Наверное толком не знаю как работает JOIN, как именно добавить таблицу тарифных планов? раньше делал JOIN трех таблиц если во все трех были одинаковые поля, но здесь в таблице тарифов нету uid, а в users_pi  нету id тарифа.

Неактивен

 

#4 24.03.2017 14:11:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Количество повторений в подзапросе

таблицы попарно соединяются

SELECT id, name, count(*)
FROM dv_main JOIN users_pi ON dv_main.uid=users_pi.uid JOIN tarif_plans ON dv_main.tp_id=tarif_plans.id
WHERE city LIKE '%city%'
GROUP BY id;


про JOIN см http://sqlinfo.ru/forum/viewtopic.php?id=3210

Неактивен

 

#5 24.03.2017 17:08:26

Тарас
Участник
Зарегистрирован: 03.03.2017
Сообщений: 5

Re: Количество повторений в подзапросе

Спасибо огромное

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson