SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 27.08.2014 16:34:45

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

Помогите разобраться с запросом

Есть две таблицы:
Service с полями
  service_id,
  content_provider_id,
  name,
  is_enabled

и content с полями
  content_id,
  service_id,
  content_data

Требуется выбрать название всех сервисов, у которых в наличии менее 100 единиц контента. Учтите, для какого-нибудь сервиса может не быть ни одной записи в таблице content вообще.

====
я понимаю, что вначале нужно выбрать данные по Inner join чтобы выбрать только те записи, по которым есть соответствие в content, дальше нужно как-то сгруппировать их и отфильтровать
по having count()<100?
Как всё это собрать воедино, голова уже пухнет.
Помогите, очень нужно.

Неактивен

 

#2 27.08.2014 20:36:28

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Помогите разобраться с запросом

Попробуйте

SELECT s.`name` FROM `service` s LEFT JOIN `content` c USING(`service_id`) GROUP BY s.service_id HAVING count(*)<100


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 27.08.2014 23:32:31

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

Re: Помогите разобраться с запросом

Да, спасибо, работает.

Неактивен

 

#4 28.08.2014 00:17:33

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Помогите разобраться с запросом

Если выкинуть LEFT, то в результате запроса не должно быть тех сервисов, у которых нет контента.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 28.08.2014 12:50:54

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

Re: Помогите разобраться с запросом

Это-то понятно

Неактивен

 

Board footer

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