Bu oldukça yaygın bir durumdur, ancak yanlış bir şey yapıyorum emin değilim.Son veri grubu-bir alt sorgu olmadan
TABLE POSTS [ ID, USER_ID, TOPIC_ID, TIME ]
Ben topic_id '1'
SELECT p.*
FROM
posts p,
(
SELECT user_id, max(time) mtime
FROM posts
WHERE topic_id = 1
GROUP BY user_id
) pm
WHERE
p.user_id = pm.user_id AND
p.time = pm.mtime
Bu doğru üzerinde her kullanıcı tarafından sadece son yazılan almak istiyorum? Alt sorgu olmadan bunu yapmanın bir yolu var mı?
Bu veriyi bahar veri sorgularıyla almanın bir yolu var mı, yoksa bu sadece bir JDBC/saklı yordam mı?
Bu doğrudur - ancak her zaman açık JOIN sözdizimini kullanın – Strawberry
Ah, çok erken konuştum. Subquery'nin SELECT'ine user_id eklemeniz gerekir ve en iyi uygulama, GROUP BY'de topic_id'in dahil edilmesi gerektiğini belirtir (bu durumda kesinlikle gerekli olmasa da) – Strawberry
Evet, çeviriyi alanımdan "gönderiler" e gönderdim bir bit, "topic_id" yerine "SELECT user_id, max (time)" olmalıdır - Düzenlenen – qzshard