Gelişmiş MySQL JOIN sorgusu?

0 Cevap php

Öncelikle, benim kötü İngilizce için üzgünüm ...

I have a problem with one of my MySQL queries. I have got two tables: messages and replies. The messages table contains a id, discussion_id, content and date field. The replies table contains a id, message_id, content and date field.

Ben belirli bir tartışmaya son on mesajlar ve cevapları getirilen istiyorum. Mesajlar cevaplar Önce sıralanması gerekiyor, son cevap üzerine sıralanması gerekiyor.

(Facebook gibi)

Ben böyle yapabilirim:

SELECT * FROM messages WHERE discussion_id = 'test' ORDER BY date DESC;

Ve daha sonra bir PHP foreach döngü kullanmak

SELECT * FROM replies WHERE message_id = 'test' ORDER BY date ASC;

Ama ideal değil 11 sorgular ettik kullanmak olsaydı. Ben katılmak veya sendika düşünüyordum, ama ben bunu olsaydı, yanıtlar ve mesajlar separatable değildir. Liste replies.date olanlar, ancak yanıtlar ve bunların ana mesajı artık birlikte değiliz edilir. Ben bu kullanıyorum:

SELECT * FROM messages LEFT JOIN replies ON messages.id = replies.message_id WHERE discussion_id='4cc43b40586b6' ORDER BY replies.date DESC

Bu görev için bir sorgu yapmak mümkün mü?

0 Cevap