Вот моя проблема:
У меня есть 3 таблицы: account, account_event и account_subscription
учетная запись содержит такие данные, как: название компании, адрес электронной почты, телефон, ...
account_event содержит следующие события: входящие звонки, исходящие звонки, визит, почта
Я использую account_subscription в этом запросе для извлечения "потенциальных" аккаунтов. Если у учетной записи нет подписки, это перспектива.
Сейчас я использую следующий запрос, который работает нормально:
SELECT `account`.*,
(SELECT event_date
FROM clients.account_event cae
WHERE cae.account_id = account.id
AND cae.event_type = 'visit'
AND cae.event_done = 'Y'
ORDER BY event_date DESC
LIMIT 1) last_visit_date
FROM (`clients`.`account`)
WHERE (SELECT count(*)
FROM clients.account_subscription cas
WHERE cas.account_id = account.id) = 0
ORDER BY `last_visit_date` DESC
Вы видите, что он возвращает last_visit_date .
Я бы хотел изменить свой запрос, чтобы он возвращал информацию о последнем событии (последний контакт). Мне нужно event_date И event_type .
Итак, я попробовал следующий запрос, который НЕ работает, потому что, очевидно, я не могу получить более одного столбца из моего подзапроса select.
SELECT `account`.*,
(SELECT event_date last_contact_date, event_type last_contact_type
FROM clients.account_event cae
WHERE cae.account_id = account.id
AND cae.event_done = 'Y'
ORDER BY event_date DESC
LIMIT 1)
FROM (`clients`.`account`)
WHERE (SELECT count(*)
FROM clients.account_subscription cas
WHERE cas.account_id = account.id) = 0
ORDER BY `last_visit_date` DESC
Я перепробовал множество решений по объединениям, но моя проблема в том, что мне нужно получить последнее событие для каждой учетной записи.
Есть идеи?
Заранее спасибо.
Джером