FindMyRecipe / server / database / queries / RecommendRecipes
RecommendRecipes
Raw
-- recipe_ids not in a user's favorite which have geq favorite count than the average of the user's favorites
SELECT * FROM recipes WHERE id IN ( SELECT recipesResult.recipe_id FROM (
  SELECT recipe_id, COUNT(*) AS favCount FROM user_favorites
  GROUP BY recipe_id
  HAVING COUNT(*) >= (
    SELECT AVG(favCount2) FROM (
      SELECT uf.recipe_id, COUNT(*) AS favCount2 FROM user_favorites as uf
      GROUP BY recipe_id
    ) as favRecipeWithCounts, user_favorites as uf2
    WHERE uf2.user_id = @user_id AND uf2.recipe_id = favRecipeWithCounts.recipe_id
  ) 
) AS recipesResult
ORDER BY RANDOM()
LIMIT 6)