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

MYSQLクエリ-現在のユーザーの投稿とフォローしているユーザーの投稿を取得します

    特定のユーザー(id =145)のすべての投稿と、投稿をフォローするすべてのユーザー、および各投稿のユーザーの詳細を取得するには、unionを使用するようにクエリを書き直します。 またはの代わりに、ロジックを簡素化します。最初の選択は指定されたユーザーの投稿を取得し、2番目の選択はそれがフォローしているユーザーの投稿を取得します:

    (SELECT P.id as postid, 
           P.caption,
           P.date,
           U.id as userid,
           U.fullname,
           U.username,
    FROM USERS AS U
    INNER JOIN Posts AS P ON P.userid = U.id
    WHERE U.id = 145)
    UNION
    (SELECT P.id, 
           P.caption,
           P.date,
           U.id,
           U.fullname,
           U.username,
    FROM Activity AS A
    INNER JOIN USERS AS U ON A.IdOtherUser=U.id
    INNER JOIN Posts AS P ON P.userid = U.id
    WHERE A.id = 145)
    ORDER BY postid DESC
    

    前提条件:

    1. Activity.idフィールドは、他のユーザーをフォローしているユーザーを表します。そうでない場合は、フィールド名を適切な名前に変更する必要があります。

    2. 投稿を投稿したユーザーを表すPostsテーブルのuseridフィールドを発明しました。 plsは代わりに正しいフィールド名を使用します。




    1. 変更またはドロップ時に起動するMySQLトリガー

    2. TypeORM配列はpostgresではサポートされていませんか?

    3. PreparedStatementを含むJDBCバッチがMySQLで機能しない

    4. この結果セット(トラバーサルモデルでデータベースに保存されているネストされたカテゴリ)から配列を作成するにはどうすればよいですか?