Join 如何连接按日期排序的两个表,并按特定值限制每个表的结果?

Join 如何连接按日期排序的两个表,并按特定值限制每个表的结果?,join,limit,Join,Limit,我有两个表,希望连接这两个表的结果,但我的条件是: Member Table +------+----------+--------+----------------------+ | a_id | name | Active | Date | +------+----------+--------+----------------------+ | 1 | Da Vinci | 1 | 2012-03-27 15:40:14 | | 2

我有两个表,希望连接这两个表的结果,但我的条件是:

Member Table +------+----------+--------+----------------------+ | a_id | name | Active | Date | +------+----------+--------+----------------------+ | 1 | Da Vinci | 1 | 2012-03-27 15:40:14 | | 2 | Monet | 0 | 2012-04-16 01:14:17 | | 3 | Van Gogh | 0 | 2012-03-22 15:49:59 | | 4 | Picasso | 1 | 2012-02-27 09:40:05 | | 5 | Renoir | 1 | 2012-04-22 15:40:14 | +------+----------+--------+----------------------+ Purchase Table +------+------+-------------------+---------------------+-------+ | a_id | p_id | title | purchase date | price | +------+------+-------------------+---------------------+-------+ | 1 | 1 | The Last Supper | 2012-03-27 15:40:14 | 34 | | 1 | 2 | The Mona Lisa | 2012-04-27 15:40:14 | 87 | | 3 | 3 | Starry Night | 2012-03-27 15:40:14 | 48 | | 3 | 4 | The Potato Eaters | 2012-03-27 15:40:14 | 67 | | 3 | 5 | The Rocks | 2012-03-27 15:40:14 | 33 | | 5 | 6 | Les Deux Soeurs | 2012-04-30 15:40:14 | 64 | +------+------+-------------------+---------------------+-------+ 成员表 +------+----------+--------+----------------------+ |a|u id |名称|活动|日期| +------+----------+--------+----------------------+ |1 |达芬奇| 1 | 2012-03-27 15:40:14| |2 |莫奈| 0 | 2012-04-16 01:14:17| |3 |梵高| 0 | 2012-03-22 15:49:59| |4 |毕加索| 1 | 2012-02-27 09:40:05| |雷诺阿2012-04-22 15:40:14| +------+----------+--------+----------------------+ 采购表 +------+------+-------------------+---------------------+-------+ |a|U id | p|id |标题|购买日期|价格| +------+------+-------------------+---------------------+-------+ |1 | 1 |最后的晚餐| 2012-03-27 15:40:14 | 34| |1 | 2 |蒙娜丽莎| 2012-04-27 15:40:14 | 87| |《星夜》2012-03-27 15:40:14| |3 | 4 |吃土豆的人| 2012-03-27 15:40:14 | 67| |3 | 5 |岩石| 2012-03-27 15:40:14 | 33| |5 | 6 | Les Deux Soeurs | 2012-04-30 15:40:14 | 64| +------+------+-------------------+---------------------+-------+ 从上面的表中,我想找到2个最新的活动成员(成员表)和他们最近一次从购买表购买的物品。其结果应该如下所示:

+------+------+-------------------+---------------------+-------+ | a_id | p_id | title | purchase date | price | +------+------+-------------------+---------------------+-------+ | 1 | 2 | The Mona Lisa | 2012-04-27 15:40:14 | 87 | | 5 | 6 | Les Deux Soeurs | 2012-04-30 15:40:14 | 64 | +------+------+-------------------+---------------------+-------+ +------+------+-------------------+---------------------+-------+ |a|U id | p|id |标题|购买日期|价格| +------+------+-------------------+---------------------+-------+ |1 | 2 |蒙娜丽莎| 2012-04-27 15:40:14 | 87| |5 | 6 | Les Deux Soeurs | 2012-04-30 15:40:14 | 64| +------+------+-------------------+---------------------+-------+ 我花了几个小时试图找到这个问题的答案,但没有找到任何解决办法。请帮帮我

谢谢您的支持。

试试看

SELECT a.a_id, p.p_id, p.title, p.purchase_date, p.price 
FROM Member a LEFT JOIN Purchase p ON a.a_id = p.a_id 
WHERE a.Active = 1 
ORDER BY a.Date DESC LIMIT 2
改变

ORDER BY a.Date DESC


您使用的是什么数据库管理系统?MySQL,MS SQL Server?非常感谢您的解决方案。在这里,我的问题是,如何将从采购表中提取的值限制为1,该值也应在描述中按日期排序。更具体地说,a_id 1进行了2次采购(p_id 1和2)。现在,它应该只从p_id 2中提取值,作为a_id 1最近购买的产品。您可以根据所需的订单修改订单后的条件。在这种情况下,您需要首先对会员加入日期进行排序,然后对每个会员的购买日期进行排序。提到
ORDER BY a.Date DESC, p.purchase_date DESC