2011-09-12 2 views
0

마지막 10 개의 행을 선택하고 싶지만 주문은 오름차순으로 유지해야합니다.MySql이 주문을 방해하지 않고 마지막 10 개의 행을 선택합니다.

포럼의 마지막 페이지를 표시하는 것과 비슷하지만 게시물은 올바른 순서로 정렬됩니다.

나는이

SELECT users.display,appreply.*,users.userid,users.avtar FROM appreply 
    LEFT JOIN users ON users.userid=appreply.userid 
    WHERE appreply.appid='$appid' 
    ORDER by apprepid DESC 
    LIMIT 10 

을하려고 노력하지만, 내가 말했듯이 순서를 방해.

답변

1

SELECT X.* FROM 
(
SELECT users.display,a.apprepid apprepid_ar, a.appid appid_ar, a.reply reply_ar, a.userid userid_ar, a.browser browser_ar, a.os os_ar, a.time time_ar,users.userid,users.avtar FROM appreply a 
LEFT JOIN users ON users.userid=a.userid 
WHERE a.appid='$appid' 
ORDER by a.apprepid DESC 
LIMIT 10 
) X ORDER BY X.apprepid_ar ASC 
+0

오류 : 대신 apprepid 필드에 DESC 연산자를 사용하는, 같은 ID 필드를 사용하는 모든 파생 테이블이 자신의 별명 – kritya

+0

이 있어야 이런에만 appreply'와''의 일부 컬럼 (들) 때문에 사용자 이름이 동일하게 ... 모든 열 이름을 제공하십시오 ... 그러면 쿼리가 그에 따라 변경 될 수 있습니다 ... – Yahia

+0

k 대기. U 테이블'users'와'appreply' rt 모두에 대한 모든 컬럼을 원하십니까? – kritya

-1

당신은 일반적으로 '아이디'는 테이블에 자동 증가 필드를 가지고 할 수있는 시도 도와주세요.

SELECT users.display,appreply.*,users.userid,users.avtar FROM appreply 
    LEFT JOIN users ON users.userid=appreply.userid 
    WHERE appreply.appid='$appid' 
    **ORDER by id DESC** 
    LIMIT 10 ORDER BY apprepid ASC 
+0

무엇이 바뀌 었습니까? : O 제발 설명 할 수 있을까요? 감사합니다 – kritya

+0

변경된 부분은 4 번째에 있습니다. 행은 별들로 강조 표시됩니다. 필드 'apprepid'를 'id'로 변경했습니다. 'ID'로 표의 기본 자동 증분 필드가 있어야합니다. 불편을 드려 죄송합니다 – venomrld

관련 문제