Can someone help me fix/optimize this query?

I'm trying to join 5 tables. Its broken up below into smaller bites and it almost works.

TABLES
volunteer - contains volunteer data
partner_skills_connector - partner_id, skill_id
volunteer_skills_connector - volunteer_id, skill_id
partners - contains partner.id and partner.region
volunteer_regions_connector - volunteer_id, region_id
volunteer_partner_permissions - volunteer_id, partner_id

The query is trying to find volunteers where the connectors match and the partner_id is not in the volunteer_partner_permissions.

This is what I have so far:

Code MySQL:
CREATE TEMPORARY TABLE temp_skills 
SELECT volunteer_skills_connector.volunteer_id
FROM  partner_skills_connector, volunteer_skills_connector
WHERE
partner_skills_connector.skills_id = volunteer_skills_connector.skill_id
AND partner_skills_connector.partner_id=1
group by volunteer_skills_connector.volunteer_id;
 
CREATE TEMPORARY TABLE temp_regions
SELECT volunteer_regions_connector.volunteer_id
FROM partners, volunteer_regions_connector
WHERE
partners.id=1
AND partners.region=volunteer_regions_connector.region_id
 
group by volunteer_regions_connector.volunteer_id;
 
 
CREATE TEMPORARY TABLE temp_permissions
SELECT volunteer_id
FROM volunteer_partner_permissions
WHERE partner_id != 1;
 
 
CREATE TEMPORARY TABLE temp_connector
SELECT temp_skills.volunteer_id
FROM temp_skills, temp_regions
WHERE temp_skills.volunteer_id=temp_regions.volunteer_id 
 
group by temp_skills.volunteer_id;
 
select volunteers.first_name, volunteers.last_name, volunteers.profile_image, volunteers.email
FROM volunteers, temp_connector, temp_permissions 
WHERE volunteers.id=temp_connector.volunteer_id
AND volunteers.id != temp_permissions.volunteer_id
AND temp_connector.volunteer_id != temp_permissions.volunteer_id
 
group by volunteers.id

Thanks E