使用Join加入每个主表行的最新行?

时间:2016-03-07 08:14:34

标签: mysql

这是我的两个表,Leadid是主键。

表1 - (主)

Leadid  Customer Name
101     Ramesh Kumar
102     Rajan Kumar
103     Rahul Kumar

表2 - (交易)

id  Leadid  Followed_by
1   101     SAKSHI
2   101     MADHURI
3   101     SAKSHI
4   102     SAKSHI
5   102     MADHURI
6   103     SAKSHI
7   103     SAKSHI

问题:我需要一个常见的查询,我只会更改FOllower Name和

在MADHURI结果的情况下应该是:

102        Rajan Kumar     5   102     MADHURI

如果出现萨克什结果应该是:

101     Ramesh Kumar      3     101     SAKSHI
103     Rahul Kumar       7     103     SAKSHI

如果其他人跟随相同的潜在客户ID,则不应包括之前的转账......

我是Leadid 101之后是madhuri,但之后是SAKSHI。

因此在为MADHURI提出查询时不应显示。

http://sqlfiddle.com/#!9/a4fbb

1 个答案:

答案 0 :(得分:0)

您可以使用NOT EXISTS()来实现此结果,如下所示:

SELECT s.*,t.* FROM Table1 s
INNER JOIN Transaction t
 ON(t.leadid = s.leadid)
WHERE NOT EXISTS(SELECT 1 FROM Transaction tt
                 WHERE t.leadid = tt.leadid
                   AND t.id < tt.id)
 AND t.followed_by = 'SAKASHI'

如果您想要其他人,请将SAKASHI更改为您想要的内容。