CodeIgniter でカスタム フォーラムを構築しています。親 (カテゴリ)、子 (ボード)、スレッド、およびメッセージ (返信) の 4 つのプライマリ テーブルがあります。スレッド テーブルには、スレッド 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." ORDER BY m.message_id";
これは私が得ているエラーです:
SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、3 行目の '.thread_id, t.first_msg_id FROM forum_messages AS m ' の近くで使用する正しい構文を確認してください。
ここに私のテーブルがあります:
アップデート
さて、クエリが機能するようになったので(まあ、エラーを修正しました)、やりたいことをしていません...ロジックが間違っていると思います。1 つのボードに 40 個の新しいスレッドを作成するスクリプトを作成しました。それらのどれも返信がありません。作成したクエリで mysql num rows を使用すると、1560 という結果が返されます。0 が返されるはずです。笑。
動作しました。