2016-09-09 8 views
-1

Ich habe eine Mysql-Tabelle, die Datensätze von verschiedenen Status von Büchern enthält. Ein gleiches Buch kann mehrere Datensätze hat, aber jeder Datensatz hat gleiches eindeutige ID d.h Angebot wie dieseMysql Abfrage für bestimmte Datensatz

id  bookname  bid 
------------------------ 
1  vb.net  681 
2  html   682 
3  vb.net  681 
4  vb.net  681 
5  html   682 

ich den letzten Satz von spezifischem Gebot 681 oder 682. abholen wollen Sie mir bitte helfen, eine SQL-Abfrage für diese zu schreiben.

Antwort

2

Haben Sie eine Unterabfrage, die die maximale ID jedes Gebots zurückgibt. Registriert mit diesem Ergebnis:

select t1.* 
from tablename t1 
join (select max(id) as maxid, bid 
     from tablename 
     group by bid) t2 on t1.id = t2.maxid 
+0

@jeroen, 'JOIN' ist nur eine kurze Form von' INNER JOIN', kein Unterschied. – jarlh

0

Nizza kehrte aber für mich einen Fehler mit Tabellennamen, aber das hat gut funktioniert: -

select t1.* 
from t1 
join (select max(id) as maxid, bid 
     from t1 
     group by bid) t2 on t1.id = t2.maxid 

vielleicht verschiedene Versionen?

Verwandte Themen