SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.06.2011 22:56:18

sveralex
Участник
Зарегистрирован: 25.06.2011
Сообщений: 2

Сложный запрос? Поля из одной таблицы, и поля из другой таблицы, но...

Вот так мы делаем выборку из основной таблицы table1:
SELECT t1.ID, t1.f2, t1.f3
FROM table1 t1
WHERE (какой-то простой фильтр)

ID - естественно, autoinc, unique

В таблице table2 - записи типа log, то есть история каких-то действий с таблицей table1: поля ID, f5, datef6.
В этой таблице ID - это ID таблицы table1, записей для одного ID может быть сколько угодно - поскольку журнал.

Таблицы связаны по ID
Вот запрос к лог-таблице, чтобы добыть последнюю по дате запись, соответствующую ID из главной таблицы table1:

SELECT t2.ID, t2.f5, t2.datef6 FROM table2 t2 WHERE t2.ID=t1.ID ORDER BY t2.datef6 DESC LIMIT 1

Можно ли сделать один !быстрый! запрос, который выводил бы
строки из table1 и table2, примерно вот так:
SELECT t1.ID, t1.f2, t1.f3, t2.f5, t2.datef6,...
FROM table1 t1, table2 t2
...

То есть, каждая строка результата содержала бы поля из table1 и НЕСКОЛЬКО ПОЛЕЙ из table2, ИЗ ПОСЛЕДНЕЙ ПО ДАТЕ записи, связанной по ID с записью основной таблиы table1

Спасибо

Неактивен

 

#2 27.06.2011 02:25:04

sveralex
Участник
Зарегистрирован: 25.06.2011
Сообщений: 2

Re: Сложный запрос? Поля из одной таблицы, и поля из другой таблицы, но...

Вот главная таблица table1:
id name
----------
1 name1
2 name2
3 name3

Вот таблица table2 - история каких-то действий с таблицей table1 (неважно каких, важно что они датированы),
при этом tid - это id из таблицы table1
tid eventdate action
-------------------------
1 2011-01-10 rename
1 2011-02-02 activate
1 2011-03-05 deactivate
2 2011-04-21 rename
3 2011-02-20 activate
3 2011-03-30 deactivate
2 2011-04-06 rename
1 2011-03-02 deactivate
2 2011-05-01 mark
3 2011-02-12 rename

Задача:
Вывести ТОЛЬКО самые последние по дате действия над записями table1, то есть результат в этом примере такой:
id name eventdate action
1 name1 2011-03-05 deactivate
2 name2 2011-05-01 mark
3 name3 2011-03-30 deactivate

Теперь, я надеюсь, задача более ясно описана.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson