2015-01-08 2 views
1

Мне нужно написать функцию экспорта, которая создает файл CSV-заказов магазина, которые имеют определенные статусы, прикрепленные к ним в течение определенного периода времени. Проблема в том, что один вид статуса (например, ID статуса 32) может появляться несколько раз в одном порядке, но имеет значение только самый ранний добавленный статус.MySQL: выберите только самую раннюю дату, найденную в наборе

Это мой код до сих пор:

select * FROM orders_status_history 
JOIN orders_total ON (
    orders_total.orders_id = orders_status_history.orders_id 
    AND orders_total.class = "ot_total" 
) 
JOIN orders ON (
    orders.orders_id = orders_status_history.orders_id 
) 
WHERE orders_status_history.orders_status_id IN(32, 21, 56, 45) 
    AND orders_status_history.date_added >= "' . $start . '" 
    AND orders_status_history.date_added <= "' . $end . '" 

Это уже работает, как ожидалось, цель состоит в том, чтобы вернуть только запись, когда статус соответствия был также ранним добавил к порядку.

+4

Если вы хотите, рассмотрим следующие этой простой двухступенчатой ​​курс действий: 1. Если вы еще не сделали этого, обеспечить надлежащие DDLS (и/или sqlfiddle), так что мы можем более легко реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry

ответ

1

Очень простая добавка к вашему sql. В конце добавить

ORDER BY orders_status_history.date_added Limit 0,1 
Смежные вопросы