powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите дописать недостоящий запрос
7 сообщений из 7, страница 1 из 1
Помогите дописать недостоящий запрос
    #39385792
taira san
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброй ночи, уважаемые форумчане!

Нужна небольшая помощь в дописании дополнительного запроса.

Имеются 2 таблицы (Customers, Orders)

Customers
cust_id10000000011000000002100000000310000000041000000005
Orders
order_numcust_id20005 1000000001 20006 100000000320007 100000000420008 100000000520009 1000000001

Первоначальный запрос выглядит следующим образом:

Код: sql
1.
2.
3.
4.
5.
select customers.cust_id,
count(orders.order_num) as num_ord
from customers left outer join orders
on customers.cust_id = orders.cust_id
group by customers.cust_id;


По этим данным извлекается запрос: сколько заказов (num_ord) сделал каждый из клиентов (cust_id).

# cust_id num_ord'1000000001' '2''1000000002' '0''1000000003' '1''1000000004' '1''1000000005' '1'
Нужно составить дополнительный запрос count (), который смог бы посчитать - сколько человек не сделали ни одного заказа. Т.е. на выходе должно быть число 1 (клиент 1000000002).

Желаемый результат
ne zakazali1

При манипуляциях с созданием подзапроса получаются ошибки 1052 и 1241
Error Code: 1052. Column 'cust_id' in field list is ambiguous 0.000 sec
Error Code: 1241. Operand should contain 1 column(s) 0.000 sec
...
Рейтинг: 0 / 0
Помогите дописать недостоящий запрос
    #39385794
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так возьми таблицу, получившуюся в первом запросе.


и выведи count(# cust_id) where num_ord=0
...
Рейтинг: 0 / 0
Помогите дописать недостоящий запрос
    #39385817
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taira sanНужно составить дополнительный запрос
Плохая практика. Рекомендую каждый запрос строить с нуля, не глядя на уже имеющееся (ну разве что учитывая подходы, но и то с оглядкой). Запрос получится проще и легче.

Код: sql
1.
2.
3.
4.
SELECT COUNT(customers.cust_id)
FROM customers 
LEFT JOIN orders ON customers.cust_id = orders.cust_id
WHERE orders.cust_id IS NULL
...
Рейтинг: 0 / 0
Помогите дописать недостоящий запрос
    #39385918
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторWHERE orders.cust_id IS NULL
А он точно выполнит это условие после формирования итоговой(соединенной) таблицы, а не до того?
...
Рейтинг: 0 / 0
Помогите дописать недостоящий запрос
    #39386027
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183А он точно выполнит это условие
Нет, блин, приблизительно...
...
Рейтинг: 0 / 0
Помогите дописать недостоящий запрос
    #39386028
taira san
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Благодарю Вас, все получилось! Вместо того, чтобы думать, куда запихнуть дополнительный count() - оказалось гораздо проще переписать запрос.
...
Рейтинг: 0 / 0
Помогите дописать недостоящий запрос
    #39386037
taira san
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,


Через count (customer.cust_id) where num_ord = '0' много раз пытался, но хз куда его было засунуть во-первых, а во-вторых mysql ругался, что мой запрос либо двусмысленный, либо по первому запросу намечается вывод 2 таблиц (клиенты и сколько у них заказов), а подзапросом count (customer.cust_id) where num_ord = '0' я собираюсь выводить одну таблицу, например.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите дописать недостоящий запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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