आप जिस क्वेरी की तलाश कर रहे हैं वह इस तरह दिखनी चाहिए:
SELECT user_id, min(created_at) AS min_created_at
FROM cards
WHERE company_id = 1
GROUP BY user_id
ORDER BY min(created_at)
आप तालिका में शामिल हो सकते हैं user
यदि आपको परिणाम में उस तालिका के कॉलम चाहिए, अन्यथा आपको क्वेरी के लिए इसकी आवश्यकता भी नहीं है।
यदि आपको min_created_at
की आवश्यकता नहीं है SELECT
. में सूची, आप इसे छोड़ सकते हैं।
रूबी में अनुवाद करना आसान होना चाहिए (जिसमें मैं अच्छा नहीं हूं)।
संपूर्ण उपयोगकर्ता रिकॉर्ड प्राप्त करने के लिए (जैसा कि मैं आपकी टिप्पणी से प्राप्त करता हूं):
SELECT u.*,
FROM user u
JOIN (
SELECT user_id, min(created_at) AS min_created_at
FROM cards
WHERE company_id = 1
GROUP BY user_id
) c ON u.id = c.user_id
ORDER BY min_created_at
या:
SELECT u.*
FROM user u
JOIN cards c ON u.id = c.user_id
WHERE c.company_id = 1
GROUP BY u.id, u.col1, u.col2, .. -- You have to spell out all columns!
ORDER BY min(c.created_at)
PostgreSQL 9.1+ के साथ आप बस लिख सकते हैं:
GROUP BY u.id
(जैसे MySQL में) .. प्रदान किया गया id
प्राथमिक कुंजी है।
मैं रिलीज़ नोट को उद्धृत करता हूं :