Based on what you're describing the Staff table has multiple entries (at least 1) for each staff member, and those entries have a unique StudentID mapping staff to student. Something like this:
StaffID = 1, StudentID = 3
StaffID = 1, StudentID = 21
StaffID = 2, StudentID = 45
...
With the above type of setup, you can grab the list of students that belong to the currently signed in staff user, then query the student table for matching students:
int staffID = 1; // current staff user
var staffStudents = StaffTable.Where(s => s.StaffID == staffID)
.Select(s => s.StudentID);
var query = StudentTable.Where(student =>
staffStudents.Any(id => id == student.StudentID));