从连接表中选择最后一个值和totalcount

时间:2015-03-30 10:10:25

标签: mysql select join count

我在我的数据库中创建了两个表;

  • todo_list
  • todo_list_item

现在,

todo_list 表包含

  • ID
  • 名称

但是有孩子叫列表项,因此是第二个表;

此表 todo_list_item 包含

  • ID
  • LIST_ID
  • 名称
  • STATUS_ID

我想要实现的目标是:

  1. 列出所有 todo_list s
  2. 显示其中包含 todo_list_item 的数量
  3. todo_list_item 表中获取最后一个 status_id ,每 todo_list
  4. 我可以通过一次加入来实现这一目标,还是我真的必须两次加入 todo_list_item 表来获取项目数,以及最后一次 status_id

1 个答案:

答案 0 :(得分:0)

根据status

中的max(id),您可以使用以下todo_list_item获取select td.*, x.total, tdi.status_id from todo_list td left join todo_list_item tdi on td.id = tdi.list_id join ( select max(id) as id ,count(*) as total, list_id from todo_list_item group by list_id )x on x.id = tdi.id and x.list_id = tdi.list_id
{{1}}