Here's the query (queries). Obviously there's a lot of joins here, but the view this is used in displays quite a bit of information. It is also searchable, so the joins need to be there in case search terms cover one of the joined tables.
$query = "SELECT SQL_CALC_FOUND_ROWS
Items.itemID
, Items.title
, Items.date
, Items.faculty
, Items.author
, Items.author2
, Items.author3
, USER.last_name
, USER.first_name
, DEPT.dept_name
, COMPANY.company_name
, TYPE.type_description
, STATUS.status_description
, certifications.certID
, certifications.is_submitted
, certifications.cert_type
, certifications.hardcopy
, certifications.cert_date
, certifications.filepath
FROM certifications
LEFT OUTER JOIN Items ON certifications.itemID = Items.ID
LEFT OUTER JOIN USER ON certifications.user_id = USER.userID
LEFT OUTER JOIN DEPT ON Items.dept = DEPT.deptID
LEFT OUTER JOIN COMPANY ON Items.Company = COMPANY.companyID
LEFT OUTER JOIN TYPE ON Items.type = TYPE.typeID
LEFT OUTER JOIN STATUS ON Items.status = STATUS.statusID
WHERE Items.deleted = '0'
" . $str . " ORDER BY $sort LIMIT $cursor, $limit ";
$result = mysql_query($query);
// foundrows query
$ct = mysql_query("SELECT FOUND_ROWS()");
$totalrows = mysql_result($ct,0);