mysql: как я могу отображать только минимальные значения, если есть более 1 строки с одинаковым значением

Итак, у меня есть некоторые результаты, где запрос похож на

SELECT * FROM employees ORDER BY birth_date ASC;  

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

Примечание. В один и тот же день родилось более 1 сотрудника, поэтому у меня есть 6 пользователей, которые являются самыми старшими, но как я могу отобразить только самого старшего


person user1860036    schedule 19.05.2016    source источник
comment
добавить LIMIT - SELECT * FROM сотрудников ORDER BY Birthday_date ASC LIMIT 1;   -  person Bernd Buffen    schedule 20.05.2016
comment
Предостережение к комментарию @BerndBuffen. Это будет работать, но с несколькими старшими сотрудниками, которые возвращаются каждый раз, не гарантируется согласованность.   -  person Uueerdo    schedule 20.05.2016
comment
@Uueerdo, чтобы гарантировать это, вы легко добавляете имя в конце заказа: ЗАКАЗАТЬ ПО дате_рождения, поле_имени ASC LIMIT 1;   -  person Bernd Buffen    schedule 20.05.2016
comment
@BerndBuffen Пока имя уникально среди этих людей; как мы знаем, это не как обобщенное правило. ;)   -  person Uueerdo    schedule 20.05.2016


Ответы (2)


Возможно, с подзапросом, например:

SELECT * FROM employees WHERE birth_date = (SELECT min(birth_date) FROM employees);
person Kame    schedule 19.05.2016

Вы можете комбинировать решения:

Предложение LIMIT используется для указания количества возвращаемых записей. Выберите одну и только одну строку SELECT с этой датой рождения.

SELECT * FROM employees where birth_date = (
SELECT birth_date FROM employees ORDER BY birth_date ASC LIMIT 1
);
person EoinS    schedule 19.05.2016