Ich habe zwei Tabellen (Nachrichten und Benutzer). Ich möchte die letzte (msg_id, Text) aus der Nachrichtentabelle für eine bestimmte ad_id auswählen und muss den Namen des Benutzers aus der Benutzertabelle auswählen.Wie wähle ich den letzten Text aus Nachrichtentabelle
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
diese Abfrage funktioniert, aber ich kann t die letzte m.text nicht wählen Table structure
leider ist nicht das erwartete ein. Ich gebe "ON CASE WHEN m.u_from_id = '14 'DANN u.id = m.u_to_id ELSE u.id = m.u_from_id END" weil die Person mit id = '14' die Nachricht liest, anstatt ihren Namen zu wählen Wählen Sie den Namen der anderen Personen. – Sujith
GROUP BY CONCAT (m.ad_id, u.id) wird angegeben, weil mehrere Benutzer eines bestimmten Ad-IDs nicht mehr als eine Nachricht erhalten. Entschuldigung für die Verwirrungen. – Sujith