Try this:
select
boat_data.*,
b.pricingDescription,
t.min_price
from boat_data
inner join (
select pricingref, min(price) as min_price
from boat_prices
group by pricingref
) t on t.pricingref = boat_data.pricingref
inner join boat_prices b on (b.price = t.min_price and b.pricingRef = t.pricingRef)
Edit: I added another solution based on the information in the comments. This version should return the lowest price for each combination of pricingRef and seasonDescription (multiple rows if the same price occurs in several seasons):
select
boat_data.*,
t.seasonDescription,
pricingDescription,
t.min_price
from boat_data
join (
select pricingref, seasonDescription, min(price) as min_price
from boat_prices
group by pricingref, seasonDescription
) t on t.pricingref = boat_data.pricingref
join boat_prices b on b.price = t.min_price and b.pricingRef = t.pricingRef and t.seasonDescription = b.seasonDescription
order by pricingRef