title: Mysql get second max date limit 1 base on user id joining table log
body: <p>I want to get second max login date from user_log table and returning login date to <code>null</code> when <code>user_id</code> records are not in <code>user_log</code> table and only single login date on <code>user_log</code> table.</p>
  
  <p>for the example case.</p>
  
  <p><strong>user_log CASE 1</strong></p>
  
  <pre><code>╔═════════╦═══════════╦═══════╦══════════════════════╗
  ║ ID      ║ USER_ID   ║ TYPE  ║  UPDATED_AT          ║
  ╠═════════╬═══════════╬═══════╬══════════════════════╣
  ║    1    ║ 1         ║ Login ║ 2019-06-19 15:00:00  ║
  ║    2    ║ 2         ║ Login ║ 2019-06-19 15:02:00  ║last login user_id 2
  ║    3    ║ 1         ║ Logout║ 2019-06-19 15:03:00  ║
  ║    5    ║ 1         ║ Login ║ 2019-06-19 15:04:00  ║last login user_id 1 
  ║    6    ║ 2         ║ Logout║ 2019-06-19 15:05:00  ║
  ║    7    ║ 3         ║ Login ║ 2019-06-19 15:06:00  ║last login user_id 3
  ║    8    ║ 2         ║ Login ║ 2019-06-19 15:07:00  ║
  ║    9    ║ 1         ║ Logout║ 2019-06-19 15:08:00  ║
  ║    10   ║ 1         ║ Login ║ 2019-06-19 15:10:00  ║
  ║    11   ║ 3         ║ Logout║ 2019-06-19 15:15:00  ║
  ║    12   ║ 3         ║ Login ║ 2019-06-19 15:18:00  ║
  ╚═════════╩═══════════╩═══════╩══════════════════════╝
  </code></pre>
  
  <p><strong>user_log CASE 2</strong></p>
  
  <pre><code>╔═════════╦═══════════╦═══════╦══════════════════════╗
  ║ ID      ║ USER_ID   ║ TYPE  ║  UPDATED_AT          ║
  ╠═════════╬═══════════╬═══════╬══════════════════════╣
  ║    1    ║ 1         ║ Login ║ 2019-06-19 15:00:00  ║last login user_id 1
  ║    2    ║ 1         ║ Logout║ 2019-06-19 15:03:00  ║
  ║    3    ║ 1         ║ Login ║ 2019-06-19 15:04:00  ║
  ║    4    ║ 2         ║ Login ║ 2019-06-19 15:05:00  ║
  ║    5    ║ 3         ║ Login ║ 2019-06-19 15:07:00  ║
  ╚═════════╩═══════════╩═══════╩══════════════════════╝
  </code></pre>
  
  <p><strong>user_log CASE 3</strong></p>
  
  <pre><code>╔═════════╦═══════════╦═══════╦══════════════════════╗
  ║ ID      ║ USER_ID   ║ TYPE  ║  UPDATED_AT          ║
  ╠═════════╬═══════════╬═══════╬══════════════════════╣
  ║    1    ║ 1         ║ Login ║ 2019-06-19 15:00:00  ║
  ║    2    ║ 2         ║ Login ║ 2019-06-19 15:05:00  ║
  ╚═════════╩═══════════╩═══════╩══════════════════════╝
  </code></pre>
  
  <p><strong>table users</strong></p>
  
  <pre><code>╔═════════╦════════════╗
  ║ ID      ║  USERNAME  ║
  ╠═════════╬════════════╣
  ║    1    ║   XX       ║
  ║    2    ║   YY       ║
  ║    3    ║   ZZ       ║
  ╚═════════╩════════════╝
  </code></pre>
  
  <p><strong>This is my query.</strong></p>
  
  <p><code>SELECT u.id as iduser,u.username,ul.type,MAX(ul.updated_at) last_login_date
  FROM users u
  LEFT JOIN user_log ul ON u.id=ul.user_id
  where ul.type = 'Login'
  GROUP BY u.id</code></p>
  
  <p>this query is just showing the max login date and only when <code>user_id</code> record in <code>user_log</code> table</p>
  
  <p><strong>Expected Result case 1</strong></p>
  
  <pre><code>╔═══════════╦═══════════╦═══════╦══════════════════════╗
  ║ USER_ID   ║ USERNAME  ║ TYPE  ║  LAST_LOGIN_DATE     ║
  ╠═══════════╬═══════════╬═══════╬══════════════════════╣
  ║ 1         ║ XX        ║ Login ║ 2019-06-19 15:04:00  ║LOG_ID(5)
  ║ 2         ║ YY        ║ Login ║ 2019-06-19 15:02:00  ║LOG_ID(2)
  ║ 3         ║ ZZ        ║ Login ║ 2019-06-19 15:06:00  ║LOG_ID(7)
  ╚═══════════╩═══════════╩═══════╩══════════════════════╝
  </code></pre>
  
  <p><strong>Expected Result case 2</strong></p>
  
  <pre><code>╔═══════════╦═══════════╦═══════╦══════════════════════╗
  ║ IDUSER    ║ USERNAME  ║ TYPE  ║  LAST_LOGIN_DATE     ║
  ╠═══════════╬═══════════╬═══════╬══════════════════════╣
  ║ 1         ║ XX        ║ Login ║ 2019-06-19 15:00:00  ║LOG_ID(1)
  ║ 2         ║ YY        ║ -     ║ -                    ║LOG_ID(-)
  ║ 3         ║ ZZ        ║ -     ║ -                    ║LOG_ID(-)
  ╚═══════════╩═══════════╩═══════╩══════════════════════╝
  </code></pre>
  
  <p><strong>Expected Result case 3</strong></p>
  
  <pre><code>╔═══════════╦═══════════╦═══════╦══════════════════════╗
  ║ USER_ID   ║ USERNAME  ║ TYPE  ║  LAST_LOGIN_DATE     ║
  ╠═══════════╬═══════════╬═══════╬══════════════════════╣
  ║ 1         ║ XX        ║ -     ║ -                    ║LOG_ID(-)
  ║ 2         ║ YY        ║ -     ║ -                    ║LOG_ID(-)
  ║ 3         ║ ZZ        ║ -     ║ -                    ║LOG_ID(-)
  ╚═══════════╩═══════════╩═══════╩══════════════════════╝
  </code></pre>
  
  <p>all case should be one query.</p>