我有这个mysql语句
SELECT `leads`.*,
`lead_notes`.`lead_id`,
`lead_notes`.`status`
FROM `leads`
LEFT JOIN `lead_notes` ON `leads`.`id` = `lead_notes`.`lead_id`
WHERE `leads`.`pixel` IN (".implode(',', array_map('add_quotes', $my_pixels)).")
AND `lead_notes`.`status`='4'
但我只想加入lead_notes中的最后一条记录。 谢谢你
好的,我的问题不清楚,我再试一次 我想从最后一个 Lead_notes 状态等于 x 的线索中获取所有记录
我有两张桌子
---table leads--- ---table lead_notes---
id pixel date id lead_id status date
1 uuid1 unixtime 1 5 1 unixtime
2 uuid1 unixtime 2 4 0 unixtime
3 uuid2 unixtime 3 3 2 unixtime
4 uuid1 unixtime 4 2 4 unixtime
5 uuid3 unixtime 5 1 2 unixtime
6 2 2 unixtime
7 4 4 unixtime
8 5 2 unixtime
9 1 1 unixtime
10 3 2 unixtime
我想在最新的一个上将 Lead 与 Lead_notes 一起加入(该 id 与 Lead_id 匹配) 如果状态等于 x
则选择它既然您已经澄清了:您根本不必加入。您想要最后状态等于给定值(例如 4)的潜在客户。所以这属于 WHERE 子句。使用 ORDER BY 和 LIMIT 获取潜在客户的最后记录。
select *
from leads
where
(
select lead_notes.status
from lead_notes
where lead_notes.lead_id = leads.id
order by lead_notes.note_date desc
limit 1
) = '4';
dec @row int=0
SELECT `leads`.*,
`lead_notes`.`lead_id`,
`lead_notes`.`status`
FROM `leads`
LEFT JOIN `lead_notes` ON `leads`.`id` =select max(a) from (select @row=@row+1 as a from `lead_notes')
WHERE `leads`.`pixel` IN (".implode(',', array_map('add_quotes', $my_pixels)).")
AND `lead_notes`.`status`='4'