LLLLLLL Posted August 18, 2017 Share Posted August 18, 2017 This seems like something I've done several times a year for years, but I can't seem to get it. I can't find a solution on Google that works, although the question was asked many times and answered, too. Also, I'm low on sleep right now. Let's say I have two tables: USERS USERS_LOGINS I want to join the tables and get one row per user, with only the latest login row. Assume "UserId" is the pk/fk and there's some sort of LoginTime in the USERS_LOGINS table. So I will get results like: - Brian 8/4 - Mitch 8/3 - Jerry 8/2 I appreciate the help. Link to comment Share on other sites More sharing options...
Barand Posted August 18, 2017 Share Posted August 18, 2017 SELECT u.name , MAX(DATE(ul.login_time)) as latest FROM USER_LOGINS ul INNER JOIN USERS u USING(userid) GROUP BY u.name Link to comment Share on other sites More sharing options...
LLLLLLL Posted August 24, 2017 Author Share Posted August 24, 2017 But what if I want everything from users (u.*), and just the one column from logins? This seems to be where I'm getting duplicate rows. Link to comment Share on other sites More sharing options...
requinix Posted August 24, 2017 Share Posted August 24, 2017 Then SELECT u.* , MAX(DATE(ul.login_time)) as latest FROM USER_LOGINS ul INNER JOIN USERS u USING(userid) GROUP BY u.namethough I would GROUP BY u.userid Link to comment Share on other sites More sharing options...
LLLLLLL Posted August 24, 2017 Author Share Posted August 24, 2017 Oops, I'm sorry I messed had some extra stuff in a third table that messed up the query. Link to comment Share on other sites More sharing options...
Psycho Posted August 24, 2017 Share Posted August 24, 2017 Create a dynamic table with the user_id and last login time for each user. Use that table as an intermediary to join each user record with the user last login record. SELECT u.*, ul.* FROM users u JOIN ( SELECT user_id, MAX(login_time) as last_login FROM user_logins GROUP BY user_id ) as i ON i.user_id = u.user_id JOIN user_logins ul ON ul.user_id = i.user_id AND ul.login_time = i.last_login Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.