Skip to content

Instantly share code, notes, and snippets.

@SnugglePilot
Forked from kevinpeno/gist:1128700
Created August 5, 2011 23:58
Show Gist options
  • Save SnugglePilot/1128805 to your computer and use it in GitHub Desktop.
Save SnugglePilot/1128805 to your computer and use it in GitHub Desktop.
SQL to get all recipes that contain all ingredients the user has
CREATE VIEW view_recipe_by_ingredient AS
SELECT R.id, R.name, RI.liquorID
FROM recipes R
JOIN recipeIngredients RI ON RI.recipeID = R.id;
CREATE VIEW view_recipes_in_cabinet AS
SELECT L.userID, RbI.name, RbI.id, COUNT( RbI.liquorID ) as LiquorCount
FROM view_recipe_by_ingredient RbI
LEFT JOIN liquorCabinet L USING (liquorID)
GROUP BY RbI.name;
CREATE VIEW view_cabinet_count AS
SELECT userID, COUNT( liquorID ) as total
FROM liquorCabinet;
CREATE VIEW view_recipes_in_cabinet_using_all_ingredients AS
SELECT RiC.name, RiC.id, userID
FROM view_recipes_in_cabinet RiC
LEFT JOIN view_cabinet_count CC USING( userID )
WHERE RiC.LiquorCount = CC.total;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment