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

SQL連絡先からの最新の写真(連絡先ごとにグループ化)

    場合によっては、目的を達成する唯一の方法は、非常に醜く凶悪なSQLを作成することであり、複数のクエリを実行するという選択肢が魅力的になります:-)

    1つのクエリを実行して友達のリストを取得し、友達ごとに最新の3枚の写真を取得します。次のようなもの:

    friend_list = sqlexec "select user2_id from relations where user1_id = "
                          + current_user_id
    photolist = []
    for friend in friend_list:
        photolist += sqlexec "select user_id, id, date_uploaded from photos"
                     + " where user_id = "
                     + friend.get("user2_id")
                     + " order by date_uploaded desc fetch first 3 rows only"
    
    # Now do something with photolist
    

    あなたは持っていません 凶悪なパターンに一致する正規表現が1つに制限されている以上に、1つのクエリとして実行します。確かに「賢い」ことは素晴らしいことですが、それが必要になることはめったにありません。私は実用的なアプローチを好みます。




    1. 並列計画の開始方法–パート2

    2. Postgres-XLの未来

    3. mysqlでjoinを使用する場合は、右側のテーブルから最新のレコードを選択してください

    4. MySQLで-1をキャストすると、18446744073709551615が返されます