Query returning Union of two tables
I think you are missing user id condition in the outer query.

select 
* FROM 
user_plan inner join receipe
on a.receipe_id = b.id
where a.user_id =:user_id and b.week_id  
= ( SELECT max(week_id) FROM user_plan where user_id=:user_id)