*jiriki*: MySQL: Select aus zwei Tabellen

Beitrag lesen

bids.bid hört sich schwer nach einer eindeutigen id des datensatzes an

Jo, in der Bid-Tabelle bekommt jedes Bid(Gebot) eine eigene ID

desweiteren sollte es zwischen den beiden tabellen auction_horses und auction_bids eine verbindung geben und zwar nicht indirekt über die tmp tabelle

Die gibt es. In der Bid-Tabelle gibt es ein Feld hID, welches die ID des zugehörigen Pferdes referenziert.

es handelt sich dabei um eine 1:n verbindung, ein pferd kann mehrere gebote haben, aber ein gebot gehört immer nur zu ein pferd. insofern sollte sich der fremdschlüssel in der auction_bids tabelle befinden.

So ist es.

es geht mit einer abfrage, die frage ist, ob dein dbms schon unterabfragen kann. falls nicht, könte man das eventuell mit einem

GROUP BY lösen.

Leider nicht. Geht erst ab MySQL 4.1x oder so. Hab noch 4.0x.

CREATE TABLE tmp
SELECT hID, MAX( time ) as time, MAX( bid ) AS current

die beiden aggregat-funktionen sind vollkommen unabhängig voneinander, sprich die MAX(time) muss nicht im gleichen datensatz wie die MAX(bid) stehen. ich weiß nicht, ob du das bedacht hast.

Ist bedacht, denn ein neues Gebot wird nur in die Tabelle eingetragen, wenns auch höher ist, als das vorhergehende.

also mein tipp, das tabellen-design noch mal überdenken und die 1:n beziehung abbilden. dann geht das auch sicherlich ohne tmp tabelle. wäre interessant zu wissen, wie deine auction_bids tabelle aussieht.

Die auction_bids hat folgende Felder:
ID         Schlüssel
hID        Referenz auf PferdeID
rID        Referenz auf Bieter
bid        Gebot
time       Eintragszeit mit TIMESTAMP

Gruß, *jiriki*