sql >> データベース >  >> RDS >> Mysql

mysql / php:投稿を表示し、投稿ごとにすべてのコメント

    データベースの構造がわからない場合は、次のようになります。 *を置き換える必要があることに注意してください 実際に必要な列のより明確なリストを持つ文字。

    SELECT p.*, c.*, u.* FROM posts p
    LEFT JOIN comments c ON c.post_id = p.id
    LEFT JOIN users u ON u.id = p.author_id
    

    カウントや合計などを取得しようとしているだけの場合は、その情報の一部をキャッシュすることをお勧めします。たとえば、クエリごとにコメント数をカウントするのではなく、投稿テーブルにコメント数をキャッシュしたい場合があります。コメントを追加/削除する場合にのみ、コメント数をカウントして更新してください。

    編集: 各コメントにユーザーデータも添付したいということに気づきました。同じテーブルに複数回参加できますが、見苦しくなります。これは非常に高価なクエリになる可能性があります。混乱を少なくするために、列のエイリアスを作成する方法の例も含めています。

    SELECT p.*, c.*, u.name as post_author, u2.name as comment_author FROM posts p
    LEFT JOIN comments c ON c.post_id = p.id
    LEFT JOIN users u ON u.id = p.author_id
    LEFT JOIN users u2 ON u2.id = c.author_id
    



    1. インサートでヒットする一意のキーはどれですか?

    2. EntityFramework6の動的MySQLデータベース接続

    3. ArrayListをOracleのPreparedStatementにバインドするにはどうすればよいですか?

    4. Oracle DatabaseConfigurationAssistantを使用して空のデータベースを作成する