Получение данных из SQL

У меня есть таблица заказов в моей БД (MySql), и там я хочу получить 4 поля.

  1. продавец
  2. клиент
  3. isert_date
  4. qtd_order

Но мне просто нужен последний заказ, сделанный каждым клиентом, поэтому я использовал этот SQL-запрос.

SELECT 
    salesman, 
    client, 
    insert_date, 
    qtd_order 
FROM 
    `orders` 
WHERE 
    salesman = 'daniel.costa' 
GROUP BY 
    client 
ORDER BY 
    insert_date

Но он дает мне первый заказ, а не последний.

Не могли бы вы мне помочь?

Попробуйте добавить DESC после ORDER BY insert_date

Jaime 25.06.2018 23:59

Используйте правильный GROUP BY. Ваш запрос даже не имеет смысла.

Eric 26.06.2018 01:33

Мне нужен последний заказ каждого клиента «Дэниела», поэтому я использовал «GROUP BY» на клиенте и «ORDER BY» в insert_date.

user3573575 26.06.2018 14:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
37
1

Ответы 1

Вам нужно ORDER BY DESC, чтобы начать с самой последней ... И если вам нужен только 1, вы можете LIMIT 1 - Нет необходимости в GROUP BY

SELECT salesman, client, insert_date, qtd_order FROM 
orders WHERE salesman = 'daniel.costa' ORDER BY insert_date DESC LIMIT 1 

Да, он приносит мне все заказы всех клиентов от "daniel", но мне нужен только последний от каждого клиента "daniel", поэтому я использовал 'GROUP BY'

user3573575 26.06.2018 14:50

Значит ли это, что отправленный мной запрос не сработал? Если я вас правильно понял ... Этот запрос по-прежнему является наиболее эффективным способом сделать это. Что делает: 1) Получает все заказы от продаж, где продавец = Дэниел. ТОГДА он упорядочивает все эти продажи по дате, начиная с «последней» и нисходящий до самой старой = DESC. ЗАТЕМ он "выбирает" первый результат и отбрасывает остальные с помощью LIMIT 1.

Zak 26.06.2018 18:40

Другие вопросы по теме