获取上一篇论坛帖子

时间:2013-01-03 08:46:21

标签: php sql

我正在创建一个论坛,我在一个数据库表中包含所有主要帖子帖子,在另一个数据库表中包含所有答案。到目前为止,拥有两张桌子真是太棒了。

forum_threads
thread_id | title | post

forum_answers
answer_id | ref_thread_id (foreign key) | post

如何选择最新帖子,包括主题标题?该线程可能没有任何答案,在这种情况下,所有数据都应该来自forum_thread。但是如果它有答案数据应该从forum_answers中选择,也可以在forum_threads中找到标题。

希望你明白!

如果我把它全部放在一个表格,答案和主要帖子中,这会更容易。虽然我被告知这是最好的方式,但不太确定.....我考虑换回只有一张桌子。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这应该可以满足您的需求,但您应该在这些表格中存储日期。

SELECT
    ft.thread_id,
    ft.title,
    COALESCE(fa.post,ft.post) AS post
FROM
    forum_threads ft
LEFT JOIN
    forum_answers fa
    ON  (ft.thread_id = fa.ref_thread_id)
ORDER BY
    ft.thread_id
LIMIT 1;

它会从post提供forum_answers值,除非该线程没有该值,然后它会从post <只提供forum_threads值/ p>

答案 1 :(得分:0)

试试这个。

SELECT fa.post, ft.title
FROM forum_threads ft INNER JOIN forum_answers fa ON
     ft.thread_id = fa.ref_thread_id
ORDER BY fa.answer_id
LIMIT 1;