【发布时间】:2011-07-26 01:52:50
【问题描述】:
这是我的问题:
我有 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 `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
我尝试了很多关于连接的解决方案,但我的问题是我需要获取每个帐户的最后一个事件。
有什么想法吗?
提前谢谢你。
杰罗姆
【问题讨论】: