pragmaMx Support Forum

alles für Webmaster => PhP & mySQL => Thema gestartet von: David555 am 23 September 2006, 09:25:24

Titel: Frage zu einer SQL Abfrage
Beitrag von: David555 am 23 September 2006, 09:25:24
Guten Tag!

Ich habe folgende SQL Tabelle:

partid----memberid ----warid
20------------4------------2
35-----------20--------- --3
36----------- 6------------3
37------------3------------1
39-----------15------------1

Nun möchte ich alle memberid's ausgeben mit der höchsten warid

also 20 und 6.

Habe schon verzweifelt rumprobiert und gegoogelt bekomme es aber irgendwie nicht hinn.

Hoffe ihr könnt mir helfen!!!

Servus
Titel: Re: Frage zu einer SQL Abfrage
Beitrag von: Andi am 23 September 2006, 09:56:52
Moin :)

das Feld  "warid" ist dynamisch, kann also auch andere Werte haben, oder?
Wenn es nur eine Abfrage sein soll, ist das recht komplex. Die Tabelle muss mit sich selbst verknüpft werden...

SELECT v.memberid, v.warid, MAX( m.warid ) AS mx
FROM `tablename` AS v, `tablename` AS m
GROUP BY v.memberid
HAVING v.warid = mx

Vermutlich ist das bei grossen Tabellen aber recht serverlastig.

Besser ist es vermutlich mit 2 Abfragen zu arbeiten. Eine ermittelt mit MAX( warid ) den höchsten Wert in der Spalte, die nächste nimmt dann diesen ermittelten Wert als Bedingung um die entsprechenden memberid's auszulesen.
Titel: Re: Frage zu einer SQL Abfrage
Beitrag von: jubilee am 23 September 2006, 10:27:33
Ab MySQL 4.1 mit subselects =
ZitatSELECT * from table where warid = (SELECT MAX(warid) FROM table);

Alles was darunter ist, ist wie Andi schon sagt, mit 2 Abfragen einfacher zu realisieren =
1. Abfrage :
ZitatSELECT MAX(warid) FROM table

2. Abfrage
ZitatSELECt * FROM table where warid=[Ergebnis aus erster Abfrage]


MfG
Titel: Re: Frage zu einer SQL Abfrage
Beitrag von: Andi am 23 September 2006, 11:03:21
Waaaaaaa....

an die subselects habe ich garnicht mehr gedacht, weil ich immernoch den alten mysql 3.x Kram in der Birne habe....
Titel: Re: Frage zu einer SQL Abfrage
Beitrag von: David555 am 23 September 2006, 11:33:34
OK, vielen DANK!
Funktioniert einwandfrei!!!!