2010-08-07 5 views
3

두 테이블 모두에 DateTime 열이 있습니다.두 테이블의 열에 MAX() 가져 오기

어떻게 MAX() DateTime을 얻을 수 있습니까?

더 짧거나 짧을수록 더 큰 쿼리의 일부이기 때문에 더 좋습니다. 그것은 중복을 제거하지 않기 때문에 더 빨리, 그리고 그것은하지 않습니다 - 이것에 대한

SELECT MAX(col) 
    FROM (SELECT col FROM TABLE_1 
     UNION ALL 
     SELECT col FROM TABLE_2) 

사용 UNION ALL :

SELECT GREATEST((SELECT MAX(column) 
        FROM TABLE_1), 
       (SELECT MAX(column) 
        FROM TABLE_2)) 

사용 조합 :

답변

15

당신은 GREATEST function을 사용할 수 있습니다 이 예에서 하위 쿼리가 중복을 반환하면 문제가됩니다.

+1

두 번째 해결 방법은 파생 테이블에 별칭을 설정해야합니다. 'SELECT MAX (col) FROM (...) AS alias_name' – Genhis

3
SELECT MAX(thedate) FROM (
    SELECT mydate as thedate FROM TABLE1 

    UNION 

    SELECT anotherdate as thedate FROM TABLE2 
) as tablealias 
관련 문제