mysql论坛加入
我想做一个简单的论坛,我有3张桌子:mysql论坛加入,mysql,Mysql,我想做一个简单的论坛,我有3张桌子: `forum_forum_topic` ( `id`, `forum_slug`, `slug` ... ) `forum_user` ( `id`, `role`, `email`, `pass`, `name` ) `forum_forum_topic_message` ( `id`, `forum_topic_id, `forum_slug` , `user_id`, `message`,
`forum_forum_topic` (
`id`,
`forum_slug`,
`slug`
...
)
`forum_user` (
`id`,
`role`,
`email`,
`pass`,
`name`
)
`forum_forum_topic_message` (
`id`,
`forum_topic_id,
`forum_slug` ,
`user_id`,
`message`,
`created_at`,
`updated_at`,
)
我想得到所有的用户信息和最后一篇文章在该论坛的主题。现在我有一个问题:
SELECT ft . * , u.name
FROM forum_forum_topic ft
LEFT JOIN forum_user u ON u.id = ft.user_id
WHERE ft.forum_slug = "general-discussions"
ORDER BY ft.created_at DESC
现在我在一个查询中获得论坛主题和创建它们的用户(每个主题一行),是否可以在该主题行中获得最后一条消息信息(带有用户信息)?
e、 g
我正在考虑这个解决方案。。。我没有测试。无论如何,它可能不是最好的,因为它很慢
SELECT ft . * , u.name,
(select message from forum_forum_topic_message where user_id = u.id order by updated_at desc limit 1) as 'last_message'
FROM forum_forum_topic ft
LEFT JOIN forum_user u ON u.id = ft.user_id
WHERE ft.forum_slug = "general-discussions"
ORDER BY ft.created_at DESC
编辑:添加条件:“where user\u id=u.id”但它只为所有主题提供相同的最后消息。。我想显示来自不同主题的最后消息。是的,抱歉,请尝试添加到子选择条件以匹配用户,我忘记了。我刚刚编辑了这篇文章。。。虽然我不确定您是否可以从subselect访问用户表…嗯,不,这不起作用,因为它只提供主题作者发布的消息。
SELECT ft . * , u.name,
(select message from forum_forum_topic_message where user_id = u.id order by updated_at desc limit 1) as 'last_message'
FROM forum_forum_topic ft
LEFT JOIN forum_user u ON u.id = ft.user_id
WHERE ft.forum_slug = "general-discussions"
ORDER BY ft.created_at DESC