如何在SQL中以一对多关系加入单行?

时间:2018-09-29 16:02:07

标签: mysql sql phpmyadmin

我想将一对多表与多表中的单行按限制1连接,并按创建日期排序

tbl_cart :

id   fullname
 1   myname1
 2   myname2
 3   myname3

tbl_cart_status:

id   cart_id   status  created_at
1     1         33      2018-09-20
2     1         34      2018-09-23
3     2         34      2018-09-21
4     1         100     2018-09-25
5     2         35      2018-09-29

我如何像这样用sql获取输出: 我想按created_at列的顺序获取购物车的最新状态

myname   cart_id   status    created_at
myname1     1         100     2018-09-25
myname2     2         35      2018-09-29

1 个答案:

答案 0 :(得分:1)

请考虑对此类查询进行过滤:

select c.name, cs.*
from tbl_cart c join
     tbl_cart_status cs
     on c.id = cs.cart_id
where cs.created_at = (select max(cs2.created_at)
                       from tbl_cart_status cs2
                       where cs2.cart_id = cs.cart_id
                      );