Я намагаюся ВИБІРАТИ 2 стовпці з підзапиту в наступному запиті, але не можу цього зробити. Спробував створити таблицю псевдонімів, але все одно не міг їх отримати.
SELECT
DISTINCT petid,
userid,
(SELECT MAX(comDate) FROM comments WHERE petid=pet.id) AS lastComDate,
(SELECT userid FROM comments WHERE petid=pet.id ORDER BY id DESC LIMIT 1) AS lastPosterID
FROM
pet LEFT JOIN comments ON pet.id = comments.petid
WHERE
userid='ABC' AND
deviceID!='ABC' AND
comDate>=DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 2 MONTH);
В основному я намагаюся отримати lastComDate
& lastPosterID
з того ж ряду - рядок, який є останнім у коментарях до конкретного домашнього улюбленця. Підкажіть, будь ласка, як я можу їх отримати ефективним способом.
Наведений вище запит працює, але здається зайвим, оскільки один і той же рядок вибирається двічі. Більше того, ORDER BY
пункт значно повільніше, ніж сукупна функція - як я виявив під час профілювання запиту. Отже, рішення, що уникає сортування, було б вдячне.
deviceID
з pets
таблиці - це означає, що я просто не отримую домашніх тварин, яких подає сам 'ABC'.