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
& lastPosterID
belirli 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 BY
yan 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.
deviceID
Dan pets
masanın - bana 'ABC' kendisi tarafından gönderilen hayvan alamadım anlamına gelir.