我在数据库中创建了两个表。
待办事项清单
todo_list_item
现在,
todo_list表包含
ID
名称
但是有孩子叫列表项,因此是第二个表;
该表todo_list_item包含
ID
list_id
名称
status_id
我想要实现的是:
列出所有todo_lists
显示它们包含多少todo_list_items
根据todo_list从todo_list_item表中获取最后一个status_id
我可以通过一次连接来实现此目的吗,还是我真的必须两次连接todo_list_item表才能分别获得项数和最后一个status_id?
最佳答案
您可以使用以下内容来获取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
关于mysql - 从联接表中选择最后一个值和总数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29343522/