我正在 CodeIgniter 中建立一个自定义论坛。我有四个主表:父母(类别)、孩子(板)、线程和消息(回复)。线程表仅包含线程 id、作者、标题、日期和第一条消息的 id。当查看一个线程时,它会使用“first_msg_id”列来检索线程的内容。
我想创建一个查询来获取特定板上所有回复的计数。基本上,任何与线程的 first_msg_id 字段不匹配的消息。这是我到目前为止所拥有的:
$查询 = " 选择 m.message_id,m.thread_id t.thread_id, t.first_msg_id FROM forum_messages AS m LEFT JOIN forum_threads AS t ON t.first_msg_id != m.message_id WHERE t.child_id = ".$board_id." 按 m.message_id 排序";
这是我得到的错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“.thread_id, t.first_msg_id FROM forum_messages AS m”附近使用正确的语法
这是我的表:
更新
好的,现在我的查询正常工作(好吧,修复了错误),它没有做我想要的......我想我的逻辑错了。我编写了一个脚本,在一块板上创建了 40 个新线程。他们都没有回复。当我对我所做的查询使用mysql num rows时,我得到1560的结果。它应该返回0。为什么会这样???哈哈。
得到它的工作。