Heim >Datenbank >MySQL-Tutorial >Wie kann ich die drei aktuellsten eindeutigen Datensatz-IDs basierend auf einer gemeinsam genutzten Spalte finden?

Wie kann ich die drei aktuellsten eindeutigen Datensatz-IDs basierend auf einer gemeinsam genutzten Spalte finden?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-29 16:06:13359Durchsuche

How Can I Find the Three Most Recent Distinct Record IDs Based on a Shared Column?

Welche eindeutigen Datensatz-IDs sind die aktuellsten?

In einer bestimmten Datenbanktabelle sind bestimmte Datensätze durch eine gemeinsame Spalte miteinander verbunden. Das Ziel besteht darin, die aktuellsten drei eindeutigen Datensatz-IDs zu identifizieren, die diesem gemeinsamen Spaltenwert zugeordnet sind.

Um dies zu erreichen, betrachten Sie die folgende Beispieltabelle:

id time text otheridentifier
1 6 apple 4
2 7 orange 4
3 8 banana 3
4 9 pear 3
5 10 grape 2

Zunächst könnte ein intuitiver Ansatz hilfreich sein B. nach der Otheridentifier-Spalte gruppieren und anschließend nach absteigender Zeit sortieren. Diese Methode würde jedoch nicht zum gewünschten Ergebnis führen:

SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3;

Diese Abfrage würde fälschlicherweise Datensätze mit den IDs 3 und 1 anstelle der korrekten IDs 4 und 2 einschließen. Der Grund für diese Diskrepanz liegt in der Abfrageausführung Reihenfolge: Die Gruppierung hat Vorrang vor der Reihenfolge.

Um die beabsichtigten Ergebnisse zu erzielen, ist eine komplexere Lösung erforderlich erforderlich:

SELECT *
FROM `table`
WHERE `id` = (
    SELECT `id`
    FROM `table` as `alt`
    WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
    ORDER BY `time` DESC
    LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3;

Diese modifizierte Abfrage verwendet eine Unterabfrage, um die einzelne ID mit dem neuesten Zeitwert für jeden einzelnen anderen Identifikatorwert auszuwählen. Diese optimierte Abfrage gewährleistet die gewünschte Ausgabe der eindeutigen Datensatzkennungen 5, 4 und 2.

Das obige ist der detaillierte Inhalt vonWie kann ich die drei aktuellsten eindeutigen Datensatz-IDs basierend auf einer gemeinsam genutzten Spalte finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn