What does it mean when I see a lock in sys.dm_tran_locks and there's no matching row in sys.dm_exec_requests?
Two more additional filters are necessary for your first query.  

1- You need to execute query for user databases only i.e. resource_database_id &gt; 4
and
2- Session status "sleeping" mean, session is currently running no request, so exclude such sessions from your result. i.e. [sessions].status  &lt;&gt;'Sleeping'   

select sessions.session_id,* from
   sys.dm_tran_locks locks inner join  sys.dm_exec_sessions sessions
      on locks.request_session_id=sessions.session_id
WHERE locks.resource_database_id &gt; 4  
AND [sessions].status  &lt;&gt;'Sleeping'