आप GROUP BY id_thread
कैसे कर सकते हैं? जब कोई id_thread
न हो आपकी तालिका में कॉलम?
SELECT *
FROM contacts
WHERE id_receiver = 1
--- GROUP BY id_thread
--- removed
ORDER BY created DESC
LIMIT 1 --- only show one row
आपकी टिप्पणियों के आधार पर, आप जो चाहते हैं वह नवीनतम है (created
. द्वारा आदेशित) ) प्रत्येक id_thread
. के लिए पंक्ति , जो एक अलग और अधिक जटिल क्वेरी है। इस तरह के प्रश्नों के लिए एक टैग भी है, जिसका नाम है [greatest-n-per-group]
.
SELECT c.*
FROM contacts AS c
JOIN
( SELECT id_thread, MAX(created) AS created
FROM contacts
WHERE id_receiver = 1
GROUP BY id_thread
) AS g
ON (g.id_thread, g.created) = (c.id_thread, c.created)
WHERE c.id_receiver = 1