Chcesz użyć GROUP_CONCAT
i SUBSTRING_INDEX
:
SUBSTRING_INDEX( GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime), ',', 1 ) AS open
SUBSTRING_INDEX( GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC), ',', 1 ) AS close
Pozwala to uniknąć kosztownych zapytań podrzędnych i uważam, że jest to ogólnie bardziej wydajne w przypadku tego konkretnego problemu.
Sprawdź strony podręcznika dla obu funkcji, aby zrozumieć ich argumenty, lub odwiedź ten artykuł, który zawiera przykład, jak to zrobić konwersja ram czasowych w MySQL więcej wyjaśnień.