MySQL Distinct und LEFT JOIN gibt Duplikate zurück

8

Ich habe 2 Tabellen in meiner Datenbank. Ein Name data , ein anderer Name changes .

Die Spalten der Tabelle sind

Data

%Vor%

changes

%Vor%

Wie Sie sehen, ist changes . related_id ein Fremdschlüssel für data . id . changes kann mehrere Zeilen gleichen name und related_id und verschiedene Kommentare haben.

Nach dem Ausführen dieser Abfrage wurde mir klar, dass mehrere Zeilen zurückgegeben werden, wobei beispielsweise Hello zweimal vorkommen kann.

SELECT DISTINCT data.name, changes.comments FROM data LEFT JOIN changes ON data.id = changes.related_id

Result

%Vor%

Wie gehe ich vor, dass nur eine Zeile zurückgegeben wird? Ich bin über SO gegangen, um nach Antworten zu suchen, und viele haben angegeben, dass DISTINCT verwendet wird, aber in meinem Fall funktioniert es nicht.

Vielen Dank im Voraus.

    
user2301818 05.01.2014, 14:19
quelle

1 Antwort

14

Wenn Sie nur einen Datensatz für jeden Namen in Ihrer data -Tabelle möchten und der Datensatz any sein soll, können Sie nach der eindeutigen Spalte ( name ) gruppieren und eine Aggregatfunktion verwenden in der anderen Spalte wie max()

%Vor%     
juergen d 05.01.2014, 14:30
quelle

Tags und Links