Q:

MySQL select all rows having latest value per id

I have table that looks like this:
| id | user | data |
--------------------
| 1  |  11  | aaa1 |
| 2  |  11  | aaa2 |
| 3  |  11  | aaa3 |
| 4  |  22  | aaa4 |
| 5  |  33  | aaa5 |
| 6  |  33  | aaa6 |
| 7  |  44  | aaa7 |

I want to select all rows, with all data, and I want to add data with max id per user, that should look like this:
| id | user | data | f_id | f_data |
------------------------------------
| 1  |  11  | aaa1 |   3  |  aaa3  |
| 2  |  11  | aaa2 |   3  |  aaa3  |
| 3  |  11  | aaa3 |   3  |  aaa3  |
| 4  |  22  | aaa4 |   4  |  aaa4  |
| 5  |  33  | aaa5 |   6  |  aaa6  |
| 6  |  33  | aaa6 |   6  |  aaa6  |
| 7  |  44  | aaa7 |   7  |  aaa7  |

this is my attempt of query:
SELECT  t1.*, t2.id AS f_id, t2.data AS f_data
        FROM table1 t1
        LEFT JOIN table1 t2
             ON t1.user=(SELECT MAX(t2.id)
                         FROM table1 t2
                         WHERE t2.user = t1.user )

Update:
All the answers are correct, but when I run the Query on table with 80K+ rows, MySQL needs a lot of time to Execute the query. For my project I will add ajax so user could click on it and php would execute query for one row per click.

A:

SQL Fiddle Demo
SELECT  t1.*, 
        t2.id AS f_id, 
        t2.data AS f_data
FROM table1 t1
JOIN table1 t2
  ON t1.user = t2.user
 AND t2.id = (SELECT MAX(t2.id)
              FROM table1 t3
              WHERE t3.user = t1.user)

