2012-08-17 4 views
0

Sub-select에 대해 설명하는 Stackoverflow에 대한 몇 가지 다른 질문이 있지만 일반적으로 여러 테이블을 사용하는 것과 관련이 있습니다. 대부분의 경우 적절한 결합이 동일한 목적을 수행 할 수 있습니다.DBIX :: Class로이 쿼리를 작성하려면 어떻게해야합니까?

그러나 아래의 쿼리는 단일 테이블을 참조합니다. DBIX :: Class를 사용하여 어떻게 작성합니까?

select ID, username, email, role 
from Employees 
where (ID in 
    (select max(ID) 
     from Employees 
     where username = 'jsmith' 
    )) 
order by ID DESC 

고마워요!

- 편집 1 : SQL 코드는 예를 들어

답변

1

Cookbook이 가지고 거의 동일한 쿼리를 수정.

하위 쿼리가 단일 ID를 반환하기 때문에 SQL 쿼리가 나에게 적합하지 않으므로 WHERE id =()가 더 적합합니다. 그걸로 무엇을하려고합니까?

+0

반환되는 ID는 하위 선택의 최대 (ID)입니다. 예를 들어 DB에 많은 레코드가 username = 'jsmith'인 경우이 쿼리는 최신 레코드를 제공합니다. 정확하지는 않지만 최고의 데이터베이스 구조입니다.하지만 그것이 내가해야 할 일입니다. 그러나 적절한 해결 방법을 찾았습니다. DB에서 대부분의 작업을 수행 할보기가 필요했습니다 (각 사용자의 최대 ID를 통해 최신 레코드 만 나열). – jblue