2009-02-02 5 views
0

У меня есть две таблицы с именем foo и bar, гипотетически говоря.SQL-подзапрос

Foo имеет столбцы foo_id, foo_fluff бар имеет столбцы bar_id, foo_id, timestamp

Мне нужен запрос, который будет извлекать возврат на одну строку для любого foo_id что барная содержит, с последней отметкой времени.

Итак, если бар имеет три строки, два из которых имеют foo_id из 1 и 1 из которых имеет foo_id 2, он вернет 2 строки. Для foo_id 1 он вернет строку с большей меткой времени двух строк.

ответ

2

Я думаю, что это то, что вы ищете (если это не должно быть подзапрос, а не присоединиться)

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 

Просто присоединиться к таблице Foo на foo_id, если вы хотите, чтобы выбрать данные из таблицы Foo