Considérez le tableau des performances du joueur suivant:
L'objectif est de récupérer les lignes de chaque colonne de maison différente et de considérer la valeur maximale de chaque maison. De plus, les résultats doivent inclure d'autres colonnes (joueur, etc.).
CREATE TABLE TopTen ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, home INT UNSIGNED NOT NULL, `datetime` DATETIME NOT NULL, player VARCHAR(6) NOT NULL, resource INT NOT NULL );
<示> Exemple de données
<期> Les résultats attendus
INSERT INTO TopTen (id, home, `datetime`, player, resource) VALUES (1, 10, '2009-04-03', 'john', 399), (2, 11, '2009-04-03', 'juliet', 244), (5, 12, '2009-04-03', 'borat', 555), (3, 10, '2009-03-03', 'john', 300), (4, 11, '2009-03-03', 'juliet', 200), (6, 12, '2009-03-03', 'borat', 500), (7, 13, '2008-12-24', 'borat', 600), (8, 13, '2009-01-01', 'borat', 700) ;
<决> Solution
<code>id home datetime player resource 1 10 2009-04-03 john 399 2 11 2009-04-03 juliet 244 5 12 2009-04-03 borat 555 8 13 2009-01-01 borat 700</code>
Cette requête exécute les étapes suivantes:
Il sélectionne toutes les colonnes dans la table de topten (alias TT).
SELECT tt.* FROM topten tt INNER JOIN (SELECT home, MAX(datetime) AS MaxDateTime FROM topten GROUP BY home) groupedtt ON tt.home = groupedtt.home AND tt.datetime = groupedtt.MaxDateTime;
Il combine TT et sous-femerie (alias Groupttt) avec une connexion interne, et la récupération de la sous-femerie pour récupérer la valeur maximale de chaque valeur de maison différente.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!