मुझे लगता है कि यह वही हो सकता है जो आप यहां सचमुच चाहते हैं:
SELECT DISTINCT
status_id,
(SELECT MAX(user_id) FROM comments c2 WHERE c1.status_id = c2.status_id) user_1,
(SELECT user_id FROM comments c2 WHERE c1.status_id = c2.status_id
ORDER BY user_id LIMIT 1 OFFSET 1) user_2
FROM comments c1
WHERE user_id IN (2,3);
डेमो
(आपका अपडेट फिडल)
हम अधिकतम user_id
. खोजने के लिए सहसंबद्ध उपश्रेणियों का उपयोग कर सकते हैं और दूसरे से अधिकतम user_id
प्रत्येक status_id
. के लिए , और फिर उनमें से प्रत्येक को दो अलग-अलग स्तंभों के रूप में स्पिन करें। GROUP_CONCAT
का उपयोग करना दृष्टिकोण यहां बेहतर हो सकता है, क्योंकि यह आपको CSV सूची के रूप में किसी भी संख्या में उपयोगकर्ताओं को आसानी से समायोजित करने की अनुमति देगा।
साथ ही, यदि आप MySQL 8+ या इससे अधिक का उपयोग कर रहे हैं, तो हम रैंक विश्लेषणात्मक कार्यों का लाभ उठा सकते हैं, जो आसान भी होगा।