...is using non ANSI JOIN syntax to join the USERLOGIN, CONTACTPERSON, USERROLE and ROLE tables together. In order for records to be returned from the query, there has to be records that exist in all tables involved. To visualize it, it would look like this:

The blue portion represents the records that would be returned from a query similar to yours.

To get records from all those tables, we have to know how they relate to one another.

Here is an example of your query using ANSI join syntax, including assumptions on how the tables relate in order to get the query to return results:

ANSI vs Non ANSI JOIN syntax

ANSI JOIN syntax is recommended - it's more readable, separates the actual WHERE clause criteria from the JOIN criteria, and is supported across various databases making queries more likely to be portable.