2013-12-08 10 views
0

레코드 목록을 검색하고 다른 테이블의 각 레코드에 대한 최신 스테이지를 가져 오는 다음 쿼리가 있습니다.MySQL 제한 하위 쿼리

SELECT leads.lead_id AS id, leads.fields, leads.date, users.name AS introducer, (SELECT lead_stage_id FROM lead_stage_history WHERE lead_stage_history.lead_id=leads.lead_id ORDER BY date_added DESC LIMIT 1) stage FROM leads, users WHERE leads.introducer_id=users.user_id AND leads.account_id=1 ORDER BY date DESC;

내가 무대 컬럼에 의해 반환되는 값을 제한하기 위해 찾고 있어요?

레코드 목록을 필터링하여 특정 단계의 레코드 만 표시하려고합니다.

감사합니다. 당신은 having 절을 사용하여 MySQL의에서이 작업을 수행 할 수 있습니다

답변

0

: 다른 데이터베이스에서

SELECT leads.lead_id AS id, leads.fields, leads.date, users.name AS introducer, 
     (SELECT lead_stage_id 
     FROM lead_stage_history 
     WHERE lead_stage_history.lead_id = leads.lead_id 
     ORDER BY date_added DESC 
     LIMIT 1 
    ) stage 
FROM leads join 
    users 
    on leads.introducer_id=users.user_id 
WHERE leads.account_id=1 
HAVING stage = 'XXX' 
ORDER BY date DESC; 

을, 당신은 료를

select t.* 
from (SELECT leads.lead_id AS id, leads.fields, leads.date, users.name AS introducer, 
      (SELECT lead_stage_id 
       FROM lead_stage_history 
       WHERE lead_stage_history.lead_id = leads.lead_id 
       ORDER BY date_added DESC 
       LIMIT 1 
      ) stage 
     FROM leads join 
      users 
      on leads.introducer_id=users.user_id 
     WHERE leads.account_id = 1 
    ) t 
where stage = 'XXX' 
ORDER BY date DESC;