@sulik93
Начал изучать Java. Продолжаю изучать Java.

Как получить максимум из 3-х таблиц по одному полю?

Всем привет!
Задачка:
Дано: 3 таблицы с полем updated_at типа timestamp.
Необходимо найти максимум по полю updated_at из 3-х таблиц.
Чувствую, что надо сделать объединение запросов.
Но как сделать правильно ?
  • Вопрос задан
  • 175 просмотров
Решения вопроса 4
@dmitryKovalskiy
программист средней руки
Ну вы правы,нужно объединение. Без ваших таблиц сложно сказать как надо, но будет примерно так
select t1.updated_at,t2.updated_at,t3.updated_at from t1 
JOIN t2 on t1.col1 = t2.col1
JOIN t3 on t1.col1 = t3.col1

Ну а как вы выберете максимальную - не скажу. не уверен есть ли скалярные функции для выбора максимального значения между разными полями.
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
(
select 'table1' as table, updated_at from table1 order by updated_at desc limit 1
union all
select 'table2' as table, updated_at from table2 order by updated_at desc limit 1
union all
select 'table3' as table, updated_at from table3 order by updated_at desc limit 1
) order by updated_at desc limit 1

По старому обыкновению, мой напутать asc|desc
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT MAX(`t`.`updated_at`)
    FROM (
        SELECT MAX(`updated_at`) AS `updated_at` FROM `table1`
        UNION SELECT MAX(`updated_at`) FROM `table2`
        UNION SELECT MAX(`updated_at`) FROM `table3`
    ) AS `t`
Ответ написан
Комментировать
Vestail
@Vestail
Software Engineer
SELECT MAX(updated_at) FROM 
(SELECT t1.updated_at FROM t1 
UNION ALL 
SELECT t2.updated_at from t2 
UNION ALL 
SELECT t3.updated_at from t3) as t;

P.S. Такие ситуации говорят о возможной ошибки проектирования.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы