[mysql] Distinct über zwei Spalten aber alle Spalten der Tabelle ausgeben

halloICKEbins2

Grünschnabel
Morgen,

ich suche eine Möglichkeit in meiner nachfolgende Tabelle nur die jeweils ersten Einträge aus den Spalten IP, PORT anzeigen zu lassen, aber davon alle Spalten und wenn möglich sortiert nach ID.

ID, IP, PORT, DATUM, FREITEXT
----------------------------------------------
1, 8.8.8.7, 80, 2017-03-03, text1
2, 8.8.8.9, 80, 2017-03-03, text1
3, 8.8.8.8, 80, 2017-03-03, text1
4, 8.8.8.8, 80, 2017-03-04, text1
5, 8.8.8.8, 80, 2017-03-05, text1

Erwartetes Ergebnis nach Abfrage:

ID, IP, PORT, DATUM, FREITEXT
----------------------------------------------
1, 8.8.8.7, 80, 2017-03-03, text1
2, 8.8.8.9, 80, 2017-03-03, text1
3, 8.8.8.8, 80, 2017-03-03, text1
 
Auf die Schnelle.
Gruppieren über IP und PORT, MIN der ID auswählen. Dann die Datensätze der ID anzeigen
SQL:
select t.*
from my_table t
where t.id in (
    select MIN(id)
    from my_table
    group by ip, port
)
 
Zurück