2014-02-01 2 views
1

Я хочу выбрать запись с самой последней датой из таблицы INNER JOINED.SQL Выберите запись с самой последней датой

Select table1.field1, table2.field1 
FROM table1 
INNER JOIN table2 
ON table1.field1 = table2.field1 
WHERE table1.field2 = table2.field2 AND most recent date 

Как это сделать в SQL?

+1

У вас есть какой-либо столбец даты магазина в Table1 или Table2? –

+0

Я думаю, что это дубликат * каждого * одного из «связанных вопросов», показанного справа ... – BRFennPocock

+1

Какая СУБД вы используете? Postgres? Oracle? –

ответ

2
Select table1.field1, t2.field1 
FROM table1 
INNER JOIN 
(
    select field1, max(field2) as mdate 
    from table2 
    group by field1 
) t2 
ON table1.field1 = t2.field1 and table1.field2 = t2.mdate 
0

Вам нужна запись TOP 1 упорядоченный по дате (в порядке убывания)

Select TOP 1 table1.field1, table2.field1 
FROM table1 
INNER JOIN table2 
ON table1.field1 = table2.field1 
WHERE table1.field2 = table2.field2 
ORDER BY date DESC 

я не мог бы быть то, что вам нужно, если table2.field1 не является уникальным полем.

0

Предполагая, что ваш table1 содержит поле date_created

Попробуйте

Select table1.field1, table2.field1 
FROM table1 
INNER JOIN table2 
ON table1.field1 = table2.field1 
WHERE table1.field2 = table2.field2 AND table1.date_created between '2012-03-18' and '2013-03-18' 
Смежные вопросы