Aşağıdaki sorguda alt sorgudan 2 sütun SEÇMEK çalışıyorum, ancak bunu yapamıyorum. Takma ad tablosu oluşturmaya çalıştım, ancak yine de alamadım.
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);
Temelde, almaya çalışıyorum lastComDate& lastPosterIDbelirli evcil hayvan için yapılan yorumlar son biridir satırda - Aynı satırdan. Lütfen bunları nasıl verimli bir şekilde elde edebileceğimi önerin.
Yukarıdaki sorgu işe yarıyor, ancak aynı satır iki kez getirildiği için aşırı görünüyor. Ayrıca, ORDER BYyan tümce toplama işlevinden önemli ölçüde daha yavaştır - sorgu oluşturma sırasında bulduğum gibi. Bu nedenle, sınıflandırmayı önleyen bir çözüm takdir edilecektir.
deviceIDDan petsmasanın - bana 'ABC' kendisi tarafından gönderilen hayvan alamadım anlamına gelir.