Her grubun en son kayıtlarını almanın en verimli yolunu bulmaya çalışıyorum.MySQL - Her Grubun Son Kaydını Görüntülemek için Farklı Sonuç
İki farklı sorgu oluşturmayı beceriyorum. Ama detaylar biraz farklı. Bu değerler gcm_notification
kayıtlıdır. Daha fazla kayıt var. Ama şimdi sadece tek bir kayda odaklanmak istiyorum. Görüntünün, biz Şimdi 2 farklı sorguları kullanarak her grubun son kayıt almak için çalışıyorum flag = 1
SELECT id, post_id, registration_id, flag
FROM gcm_notification
WHERE post_id = 1743
AND registration_id = "ezDCef_3ORo:APA91bG-sSjaMR9OwylrV7A0H7dvTEAfwJNYGUa3Ud5QZhNIh7-r2peLrb9H33pUs_KJkYisnsIUL4bUT1xrqffOv2jYXBB348oNgNVmLHGZrmgLFdWQiSVRfq9A8BhAGoBB0xN-aDs-"
ile latest id = 1393
görebilirsiniz.
Seçenek 1:
SELECT MAX(id) as latest_id, post_id, flag
FROM gcm_notification
WHERE registration_id = "ezDCef_3ORo:APA91bG-sSjaMR9OwylrV7A0H7dvTEAfwJNYGUa3Ud5QZhNIh7-r2peLrb9H33pUs_KJkYisnsIUL4bUT1xrqffOv2jYXBB348oNgNVmLHGZrmgLFdWQiSVRfq9A8BhAGoBB0xN-aDs-"
GROUP BY post_id
Seçenek 2:
SELECT id, post_id, flag
FROM gcm_notification t1
RIGHT JOIN (
SELECT MAX(id) AS latest
FROM wp_spc_gcm_notification
WHERE registration_id = "ezDCef_3ORo:APA91bG-sSjaMR9OwylrV7A0H7dvTEAfwJNYGUa3Ud5QZhNIh7-r2peLrb9H33pUs_KJkYisnsIUL4bUT1xrqffOv2jYXBB348oNgNVmLHGZrmgLFdWQiSVRfq9A8BhAGoBB0xN-aDs-"
GROUP BY post_id) t2
ON t1.id = t2.latest
WHERE registration_id = "ezDCef_3ORo:APA91bG-sSjaMR9OwylrV7A0H7dvTEAfwJNYGUa3Ud5QZhNIh7-r2peLrb9H33pUs_KJkYisnsIUL4bUT1xrqffOv2jYXBB348oNgNVmLHGZrmgLFdWQiSVRfq9A8BhAGoBB0xN-aDs-"
GROUP BY post_id
Gördüğünüz gibi, Seçenek 2 doğru sonucu gösterir.
Bu sorum,
Neden Seçenek 1 görüntüler doğru id
ama flag
değeri yanlış mı? MAX
sadece geçerli id
güncel değil, ancak bayrak değil mi?
- SQL Sorgusu çok dağınık ve okunması zor olduğu için özür dilerim çünkü sözdizimini nasıl vurgulayacağımı bilmiyorum. -
Aradığım açıklama budur! Vurgu için teşekkürler. – WeeHong