У меня есть база данных MySQL для электронной коммерции, в которой информация о заказах хранится в таблице «заказы».
Мне нужно выбрать всех НОВЫХ покупателей за март месяц.Клиентам не нужно регистрироваться для заказа, поэтому я работаю просто с электронной почтой клиента и датой времени заказа.Поэтому выберите все электронные письма клиентов, которые вообще не отображались в предыдущие месяцы.
Таблица базы данных содержит около 100 тыс. Строк, и я ищу эффективный запрос.
Я не являюсьслишком хорошо с SQL (вы, вероятно, можете сказать!), но это то, что у меня есть ...
SELECT distinct(user_email) FROM orders
WHERE order_datetime > '2011-03-01 00:00:00'
AND order_datetime < '2011-03-31 23:59:59'
AND user_email NOT IN (
SELECT user_email FROM orders
WHERE order_datetime < '2011-03-01 00:00:00')
GROUP BY user_email
Это действительно запутанный способ делать вещи?:) Пожалуйста, дайте мне знать, если есть более эффективный способ ...
Спасибо, Рич