If BusinessUnit is a custom module and assuming that the foreign key in the Users table and the primary key in the BusinessUnit table are both named BusinessUnitID, this snippet should return a dataset of the inner join of the two tables:
var dataSet = UserInfoProvider.GetUsers()
.Source(source => source.Join<BusinessUnitInfo>("BusinessUnitID", "BusinessUnitID"))
.Where(whereCondition)
.Result; //dataset with properties of both tables, take this out if you want just the collection of UserInfo
If BusinessUnit is instead a custom table, then you can use ConnectionHelper to execute a SQL query, like so:
string selectStatement =
"select u.*, b.* from CMS_User u inner join BusinessUnit b on u.BusinessUnitID = b.BusinessUnitID";
QueryDataParameters parameters = null;
var dataSet = ConnectionHelper.ExecuteQuery(selectStatement, parameters, QueryTypeEnum.SQLQuery);
Obviously, modify the select statement and parameters as needed. Refer to this documentation to see the overloads of the ConnectionHelper.ExecuteQuery() method.