[MySQL] Join in combinatie met MAX

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 123650

Topicstarter
Hallo,

Ik zit met de volgende gegevens.

Tabel a ( id, naam)
Tabel b (id, waarde_a, datum, opmerking)

Nu wil ik deze twee tabellen als volgt joinen in een query.

SELECT *
FROM a
INNER JOIN b ON b.waarde_a = a.id AND ...

Op de '...' zou ik graag een conditie willen hebben die ervoor zorgt dat ik een enkele regel uit tabel b haal en wel de regel met MAX(datum).

Heeft iemand een idee op welke manier dit meest effectief kan?

Alvast bedankt voor de moeite.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik denk dat je op zoek bent naar een groupwise maximum. Op google is er genoeg over te vinden: [google=groupwise maximum]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Precision
  • Registratie: November 2006
  • Laatst online: 03-07 14:35
Gecorreleerde subquery, een subquery met in de where clause een stuk van de originele query.
SELECT *
FROM a
INNER JOIN b ON b.waarde_a = a.id WHERE b.datum = ( select MAX(datum) from b as c where c.id = b.id )
zoiets geen idee of het werkt.

Niet goed wakker, oplossing die ik gaf, haalt het maximum op per rij en aangezien je een join gebruikt, heeft hij je alle waardes terug.
SELECT * FROM a INNER JOIN b ON b.waarde_a = a.id WHERE b.datum = ( select MAX(datum) from b )

[ Voor 33% gewijzigd door Precision op 31-05-2011 15:28 ]

Crisis? Koop slim op Dagoffer - Op zoek naar een tof cadeau?