webForumDet fria alternativet

GROUP BY, men hur hämta senaste?

5 svar · 527 visningar · startad av Inferis

InferisMedlem sedan sep. 2000670 inlägg
#1

Jag vill hämta senaste id, men det äldsta visas.

$query = "SELECT DISTINCT tillv.namn, tillv.id, max(modell.id), modell.namn, modell.datum 
FROM tillv INNER JOIN modell ON (tillv.namn = modell.namn) 
WHERE modell.namn = '$valt' 
GROUP BY modell.namn 
ORDER BY modell.id DESC ";

Problemet är att det inte är senaste datum som visas. Hur ändrar man?

GildebrandMedlem sedan juni 2009920 inlägg
#2

Gissar på att du kör MySql.
Skriv max(modell.datum) istället för bara modell.datum.
MySql är lite väl snällt när det kommer till sådana där frågor, samma fråga i SQL Server hade renderat ett felmeddelande då Group by gör att den inte vet vilket värde kolumnerna syftar på.

InferisMedlem sedan sep. 2000670 inlägg
#3

Förlåt! Jag har max(modell.datum) redan. Skrev in det fel.
Ja, det är mysql.

GildebrandMedlem sedan juni 2009920 inlägg
#4

Kan du uppdatera ursprungliga inlägget med exakt hur din fråga ser ut?

InferisMedlem sedan sep. 2000670 inlägg
#5

Har uppdaterat originalfrågan efter vad jag kunde. Har provat tusen olika lösningar känns det som.
Jag vill alltså ha tillverkarna i grupper, men det senaste ID ska visas med tillverkaren i en loop.

$tillverkaren = $row[0];
$senaste = $row[3];
InferisMedlem sedan sep. 2000670 inlägg
#6

Förenklat vill jag ha det så här:

Tillverkare: FFF
Modell: XCV
Modell-ID: 333 <- Detta id från tabell modell högst, alltså ska gruppen och id hamna överst

Tillverkare: CCC
Modell: REW
Modell-ID: 332 <- Näst högst id

Tillverkare: YYY
Modell: UEG
Modell-ID: 331

<?php
$query = "SELECT tillv.namn, tillv.id, max(modell.id), modell.namn, modell.datum FROM tillv INNER JOIN modell ON (tillv.namn = modell.namn) WHERE modell.namn = '$valt' GROUP BY tillv.namn ORDER BY modell.id DESC";   
$result=mysql_query($query);
$num=mysql_numrows($result);

$i=0;
while ($i < $num) {

$row = mysql_fetch_array($result);

$tillverkare = $row[0];
$idet = $row[1];
$modellen = $row[3];
$upplagd = $row[4];
?>
<div>
Tillverkare: <?php echo $tillverkare; ?><br>
Modell:  <?php echo $modellen; ?> (upplagd  <?php echo $upplagd; ?>)
Modell-ID:  <?php echo $idet; ?>
</div>
                

<?php
$i++;
}
?>
139 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)