2013-12-10 4 views
2

내가 내가 서브 쿼리를 사용하는 경우이 성능에 영향을 미치지 않는 종류의 created_on DESC 이메일 ASC둘 이상의 필드로 주문 하시겠습니까?

를 원하기 때문에 내가 서브 쿼리를 사용하고이 쿼리를

SELECT * FROM 
(SELECT u.id,u.email,u.verified,u.verified_on,u.created_on,ca.html AS age,cg.html AS gender,cs.html AS state 
FROM users u 
LEFT JOIN combo ca ON ca.combo_group='age' AND ca.value =u.age 
LEFT JOIN combo cg ON cg.combo_group='gender' AND cg.value =u.gender 
LEFT JOIN combo cs ON cs.combo_group='state' AND cs.value =u.state ORDER BY created_on DESC) users ORDER BY email ASC; 

있습니다.

+0

성능에 영향을 미칠뿐만 아니라 예상 결과도 제공하지 않습니다. –

+0

예기치 못한 이유는 무엇입니까? –

+1

전자 메일로 정렬되므로 결국에는 created_on을 사용하여 순서가 무시됩니다. –

답변

5

왜 두 개의 필드로 주문하지 않습니까?

SELECT 
    u.id 
    ,u.email 
    ,u.verified 
    ,u.verified_on 
    ,u.created_on 
    ,ca.html AS age 
    ,cg.html AS gender 
    ,cs.html AS state 
FROM users u 
    LEFT JOIN combo ca ON ca.combo_group='age' AND ca.value =u.age 
    LEFT JOIN combo cg ON cg.combo_group='gender' AND cg.value =u.gender 
    LEFT JOIN combo cs ON cs.combo_group='state' AND cs.value =u.state 
ORDER BY created_on DESC, email ASC 
+0

오 이런가 가능합니까? 나는 모르겠다 –

+0

예, 여러 필드로 주문할 수 있습니다. – Sal00m

+0

... 표현식에 의해, 그리고 종종 하위 쿼리의 결과에 의해. –

관련 문제