Искате да използвате GROUP_CONCAT
и 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
Това избягва скъпите подзаявки и като цяло го намирам за по-ефективно за този конкретен проблем.
Разгледайте страниците с ръководство за двете функции, за да разберете аргументите им, или посетете тази статия, която включва пример за това как да направите преобразуване на времеви рамки в MySQL за повече обяснения.