2009-02-02 6 views
0

J'ai deux tables nommées foo et bar, hypothétiquement parlant.Sous-requête de tables SQL

foo a colonnes foo_id, foo_fluff bar a colonnes bar_id, foo_id, timestamp

je besoin d'une requête qui récupérera le retour d'une ligne pour une foo_id que la barre de table contient, avec le dernier horodatage. Donc, si la barre a trois lignes, dont deux ont un foo_id de 1, et 1 a foo_id 2, cela retournera 2 lignes. Pour foo_id 1, il retourne la ligne qui a le plus grand horodatage des deux lignes.

Répondre

2

Je pense que c'est ce que vous cherchez (à moins qu'il doit être un sous-requête et non une jointure)

select max(bar.timestamp), foo.foo_fluff 
from foo 
inner join bar 
      on foo.foo_id = bar.foo_id 
group by foo.foo_fluff 
0
SELECT timestamp FROM bar GROUP BY foo_id ORDER BY timestamp DESC 

Il suffit de se joindre à la table foo sur foo_id si vous voulez sélectionner les données de la table foo