Depending on how you are processing the input ingredients I think this current method has some sql injection risks.
You could append the ingrediant name to the join conditions which may be quicker.
You could also hash combinations of ingredients for receipes for a quick lookup.