Group by and average from related tables
Are you looking for something along the lines of:

SELECT r.name as Region,
    avg(conc.ticket_price) as AverageCost
FROM Region r
INNER JOIN Country_Region cr
    ON cr.region_id = r.id
INNER JOIN Concerts c
    ON c.country_id = cr.country_id
GROUP BY r.name


This should not be a slow query at all - especially if the id fields are all indexed.

I recommend reading up on MySQL Aggregate Functions which use Group By from here: http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html