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

左端のテーブルのすべての行について、右端のテーブルから1行だけを返します

    使用:

      SELECT u.id,
             u.name,
             MIN(t.spent) AS spent
        FROM USERS u
        JOIN TRANSACTIONS t ON t.uid = u.id
    GROUP BY u.id, u.name
    

    これにより、少なくとも1つのTRANSACTIONSレコードを持つユーザーのみが返されることに注意してください。サポートレコードを持っていないユーザーとサポートレコードを持っているユーザーを表示したい場合は、次を使用してください:

       SELECT u.id,
              u.name,
              COALESCE(MIN(t.spent), 0) AS spent
         FROM USERS u
    LEFT JOIN TRANSACTIONS t ON t.uid = u.id
     GROUP BY u.id, u.name
    


    1. SQL ServerのCEILING()の例

    2. MySQLの各グループの最初の行を選択するにはどうすればよいですか?

    3. 2つのMySQLテーブルをマージするにはどうすればよいですか?

    4. MySQL:CREATETABLEステートメントで主キーに名前を付けます