Добрый день. Собственно не могу написать SQL запрос, особо не силен в этом, но появилась одна задача, собственно поэтому решил попросить помощи.
Имеется база данных, с двумя таблицами [customers] и [orders], в таблице [customers] содержится около 1 млн. записей, в таблице [orders] содержится около 1.5 млн. записей.
Структура таблицы [customers]: id, firstname, lastname, email, date_reg
Структура таблицы [orders]: id, customer_id, total, status, order_date
Собственно необходимо сделать две выборки:
[status] = success, сортировка по [date_reg].
UPDATE Немного почитав, собрал такой запрос.
SELECT customers.id,
customers.firstname,
customers.lastname,
orders.status
FROM customers
INNER JOIN orders
ON customers.id = orders.customer_id
AND orders.status != 'success'
AND customers.registration_date >= '2016-05-01'
LIMIT 500;
В принципе он почти во всем меня устраивает кроме того что, по условию нужно вывести только клиентов у которых вообще не было ни единого "success" заказа. А в моем случае как я понял я вывожу все не "success" заказы клиентов, которые были зарегистрированы на протяжении прошедшего года.
TOP 500 [customers] за последний год, у которых нет ни одного [orders] где [status] = success, сортировка по [date_reg]
select c.id
from customers c
join orders o ON c.id = o.customer_id
where date(date_reg) >= curdate() - interval 1 year /* за последний год */
group by c.id
having sum(if(status = 'success', 1, 0)) = 0 /* кол-во заказов со статусом success = 0 */
order by c.date_reg desc
limit 500
TOP 500 [orders] созданных в будний день за последние 3 месяца вывести [order_id], [email], [date_order] сортировка по [date_order] заказа
select o.id as order_id,
c.email,
o.order_date
from orders o
join customers c ON o.customer_id = c.id
where date(order_date) >= curdate() - interval 3 month
and dayofweek between 2 and 6 /* 1 - вс, 7 - сб */
order by order_date desc
limit 500
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть таблица которую надо партицироватьНо, ее критерий партицирования находятся в другой таблице