2015-07-23 12 views
5

Vorrei recuperare il valore di 1 parte superiore del set di risultati di ricerca che è collegata tramite dell'UnioneSelezionare TOP 1 dal set di risultati

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 

Ma non ha potuto ottenere il risultato atteso.

+1

'top 1' e MySQL? – potashin

+2

'TOP 1' in MySQL è più come' ORDER BY ... LIMIT 0, 1' – Sirko

+0

Funziona davvero: 'created_time = curdate()'? –

risposta

20

Non esiste una parola chiave TOP in MySQL per quanto ne so. Quello che ti serve è 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 
Problemi correlati