2015-07-23 3 views
5

Я хотел бы получить первое значение 1 результирующего набора запроса, который связан с использованием UnionВыбор TOP 1 из результирующего набора

SELECT TOP 1 * FROM 
(
    SELECT paused_time as end_time 
     FROM production_time 
     WHERE created_time = curdate() 
    UNION 
    SELECT resumed_time as end_time 
     FROM pause_timer 
     WHERE created_time = curdate() 
    UNION 
    SELECT end_time as end_time 
     FROM timer_idle 
     WHERE created_time = curdate() 
) as end_time 
ORDER BY end_time DESC 

Но не могли бы получить ожидаемый результат.

+1

'top 1' и MySQL? – potashin

+2

'TOP 1' в MySQL больше похож на' ORDER BY ... LIMIT 0, 1' – Sirko

+0

Действительно ли это работает: 'created_time = curdate()'? –

ответ

20

Ключевое слово в MySQL, как мне известно, не имеет ключевого слова TOP. Что вам нужно - Limit:

SELECT * FROM 
(
    SELECT paused_time as end_time FROM production_time WHERE created_time = curdate() 
    UNION 
    SELECT resumed_time as end_time FROM pause_timer WHERE created_time = curdate() 
    UNION 
    SELECT end_time as end_time FROM timer_idle WHERE created_time = curdate() 
) as end_time 
ORDER BY end_time DESC 
LIMIT 1 
Смежные вопросы