2013-12-08 4 views
0

У меня есть следующий запрос, который извлекает список записей и получает последний этап для каждой записи из другой таблицы.Подпоследователь под Limit Limit

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;

Я ищу, чтобы ограничить значение, возвращенное в колонке стадии?

Я хотел отфильтровать список записей, чтобы отображать только записи на определенном этапе.

Спасибо.

ответ

0

Вы можете сделать это в MySQL, используя having пункт:

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; 

В других базах данных, вы WOU

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;