powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите создать запрос
5 сообщений из 5, страница 1 из 1
Помогите создать запрос
    #32388498
pasm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим есть 2 таблицы: Таблица "Клиенты" с полями "ID" и "Имя" и таблица "Заказы" с полями "ID" и "Заказ". Поля "ID" в таблицах связаны. У одного клиента может быть много заказов, а может быть что у клиента нет ни одного заказа. Нужно сделать запрос который бы вывел всех клиентов, независимо есть ли у него заказы или нет, и количество его заказов.

Помогите пожалуйста, замаялся уже. Всё время результат ограничивается только теми у кого есть заказы.
...
Рейтинг: 0 / 0
Помогите создать запрос
    #32388556
Pritorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
left join пользуй а не inner! И вообще забей Constraint'ы
...
Рейтинг: 0 / 0
Помогите создать запрос
    #32389314
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SELECT * FROM `КЛИЕНТЫ` a LEFT JOIN `ЗАКАЗЫ` b ON a.id=b.id

Для тех клиентов у которых нет заказов все поля таблицы b будут иметь значение NULL. Соответственно COUNT(*) выдаст результат 1 для тех у кого заказов нет! Для решения используй SUM и IF или ISNULL и т.д.
mahoune
...
Рейтинг: 0 / 0
Помогите создать запрос
    #32391680
pasm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ. У меня есть продолжение этого вопроса. Допустим есть ещё 3я таблица, аналогичная второй, но с другим содержимым. Нужно сформировать большую таблицу со всеми клиентами, количеством их заказов и количеством связанных элементов из 3й таблице. Можно это сделать без промежуточного запроса? Если да то как?
...
Рейтинг: 0 / 0
Помогите создать запрос
    #32391859
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как советует дока по MySQL быстрее будет работать промежуточная временная таблица или использование HAVING.

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


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