powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Такой запрос
4 сообщений из 4, страница 1 из 1
Такой запрос
    #32752739
KhasDenis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть три таблицы. Таблица клиентов, интернет услуг и дополнительных услуг.
Таблицы интернет услуг и дополнительных услуг имеют внешние ключи на таблицу клиентов (InternetService.clientId и AdditionalServices.clientId).
Необходимо одним запросом выбрать некоторую инфу по клиенту, интеренет тариф из таблицы InternetService и узнать потребляет ли он какой нибудь дополнительный сервис.

Набрасал такой запрос:
SELECT
distinct(Clients.id),
Clients.name,
Clients.phone,
InternetService.tariff,
AdditionalService.id
FROM Clients
LEFT JOIN InternetService ON Clients.id = InternetService.clientId
LEFT JOIN AdditionalServices ON Clients.id = AdditionalServices.clientId

проблема в том что если клиент потребляет несколько доп. сервисов, то по этому клиенту будем иметь несколько записей. Нужно ограничить только одной, т.е. если клиент потребляет более одного доп. сервиса остальные просто отбрасывать.
...
Рейтинг: 0 / 0
Такой запрос
    #32755744
KhasDenis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT
Clients.id,
Clients.name,
InternetService.tariff,
count( AdditionalServices.id )
FROM Clients, InternetService, AdditionalServices
WHERE
Clients.id = InternetService.clientId AND
Clients.id = AdditionalServices.clientId
GROUP BY Clients.id, Clients.name, InternetService.tariff
...
Рейтинг: 0 / 0
Такой запрос
    #32755754
KhasDenis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь если в таблице AdditionalServices запись по клиенту не представлена то мы его вообще не увидим. А нужно видеть ноль
...
Рейтинг: 0 / 0
Такой запрос
    #32756383
KhasDenis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот так работает

SELECT
DISTINCT Clients.name,
Clients.phone,
InternetService.tariff,
count( AdditionalServices.id )
FROM Clients
LEFT JOIN InternetService ON Clients.id = InternetService.clientId
LEFT JOIN AdditionalServices ON Clients.id = AdditionalServices.clientId
GROUP BY
Clients.name,
Clients.phone,
InternetService.tariff

неплохой монолог получился
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Такой запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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