私は2つのテーブル(メッセージとユーザ)を持っています。特定のad_idのメッセージテーブルから最後(msg_id、text)を選択して、ユーザーテーブルからユーザーの名前を選択する必要があります。メッセージテーブルから最後のテキストを選択する方法
SELECT u.id
, m.date
, m.ad_id
, max(m.msg_id)as msg_id
, u.first_name
, m.text
, m.u_to_id
, m.u_from_id
FROM user u
JOIN messages m
ON CASE WHEN m.u_from_id ='14' THEN u.id = m.u_to_id
ELSE u.id = m.u_from_id END
AND (m.u_from_id='14' OR m.u_to_id='14')
AND m.ad_id='20'
GROUP BY CONCAT(m.ad_id,u.id)
ORDER by m.msg_id DESC
このクエリが動作しているが、私は最後のm.text Table structure
は申し訳ありませんが私のために正常に動作し、受信者と、このクエリを特定します。 id = '14 'の人が自分の名前を選択するのではなく、そのメッセージを読んでいるので、m.u_from_id = '14'それからu.id = m.u_to_id ELSE u.id = m.u_from_id END '他の人物の名前を選択する – Sujith
GROUP BY CONCAT(m.ad_id、u.id)は、特定のad_idに複数のメッセージが存在することを避けるために与えられます。混乱のために申し訳ありません。 – Sujith