Sie sollten wahrscheinlich eine weitere Spalte hinzufügen. Jetzt ist es möglich, mit GROUP BY
einen eindeutigen Datensatz für jede account_id zu erhalten -Klausel, aber die Ergebnisse aller nicht aggregierten Spalten können mehrdeutig sein. Sie müssen eine Reihenfolge haben, die Sie genehmigen, oder einen Indikator innerhalb der Gruppe, um zu bestimmen, welcher Datensatz für jede accout_id "erster" ist. Mit der Spaltenmarkierung, welcher Datensatz in jeder Gruppe der erste ist, ist die Abfrage einfach. Ohne sie müssen Sie eine Reihenfolge akzeptieren, die die Abfrage angibt, welcher Datensatz "erster" ist. Ein Beispiel für die alphabetische Reihenfolge von full_name:
SELECT account_id,
full_name,
email,
login,
phone,
updated_at,
last_request_at,
unconfirmed_email
FROM table1 WHERE full_name IN (
SELECT MIN(full_name)
FROM table1
GROUP BY account_id
WHERE id < '300'
)