0

我正在 CodeIgniter 中构建一个自定义论坛,目前正在努力在发布线程的最后一条消息时订购板的线程。我有一个类别(父母)、板(孩子)、线程和消息(线程回复)的表格。我想要做的是获取当前板上的所有线程并在线程的最后一条消息(last_msg_id)的时间对它们进行排序。

我以为我已经正确编写了查询,但是,我收到了一个 SQL 错误。也许我的逻辑是不正确的。你们有什么感想?

这是我的查询:

$query = "SELECT 
                    t.child_id, t.thread_id, t.last_msg_id,
                    m.thread_id, m.message_id, m.date_posted
                    FROM forum_threads AS t 
                    LEFT JOIN forum_messages ON m.message_id = t.last_msg_id AS m
                    WHERE t.child_id = " . $board_id . "
                    ORDER BY m.date_posted DESC
                    LIMIT 10";

这是我得到的错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS m WHERE t.child_id = 1 ORDER BY m.date_posted DESC ' at line 5
4

1 回答 1

3

as m是在错误的地方:

SELECT t.child_id, t.thread_id, t.last_msg_id, m.thread_id, m.message_id, m.date_posted
FROM forum_threads AS t
LEFT JOIN forum_messages AS m ON m.message_id = t.last_msg_id
WHERE t.child_id =  ".$board_id."
ORDER BY m.date_posted DESC 
LIMIT 10
于 2013-06-19T02:31:42.610 回答