diff --git a/userStories/story1.py b/userStories/story1.py index f719ef7f30a07052253e16db5ae1b497ec2e9573..f39e7d33317bc3e7c6481cbbc2258ff0127a75ac 100644 --- a/userStories/story1.py +++ b/userStories/story1.py @@ -12,16 +12,17 @@ def checkIfRoastedBy(coffeeName, roastery, cursor): try: ''' query = """ - SELECT RC.COFFEEID - FROM ROASTEDCOFFEE AS RC INNER JOIN ROASTEDBY AS RB ON RC.COFFEEID = RB.COFFEEID - INNER JOIN ROASTERY AS R ON RB.ROASTERYID=R.ROASTERYID - WHERE RC.COFFEENAME LIKE ? AND RB.ROASTERYNAME LIKE ? + SELECT RC.CoffeeID + FROM RoastedCoffee AS RC INNER JOIN RoastedBy USING (CoffeeID) + INNER JOIN Roastery AS R USING (RoasteryID) + WHERE RC.CoffeeName LIKE ? AND RB.RoasteryName LIKE ? """ ''' query = """ SELECT CoffeeID, RoasteryID - From RoastedCoffee Natural Inner join roastedby natural inner join roastery - where Coffeename like ? and roasteryname like ? + FROM RoastedCoffee INNER JOIN RoastedBy USING (CoffeeID) + INNER JOIN Roastery USING (RoasteryID) + WHERE CoffeeName LIKE ? and RoasteryName like ? """ cursor.execute(query, (coffeeName, roastery)) rows = cursor.fetchone() diff --git a/userStories/story2.py b/userStories/story2.py index 352355c6af5f2c661dd4c34ea7fb05996bc34061..8dee995af72a82f484bba13003036ba518600e42 100644 --- a/userStories/story2.py +++ b/userStories/story2.py @@ -12,7 +12,7 @@ def runStory2(cursor): userstory2 = """ SELECT U.FullName, DistinctCoffeesConsumed - FROM User AS U NATURAL INNER JOIN ("""+ queryUserWithTastingCounts+""") + FROM User AS U INNER JOIN ("""+ queryUserWithTastingCounts+""") USING (UserID) ORDER BY DistinctCoffeesConsumed DESC """ diff --git a/userStories/story4.py b/userStories/story4.py index 36c7c5186d05bbe8148320b2b859e560fb185561..d691f9171c1a348b021a470ee4b741cc6c7866fd 100644 --- a/userStories/story4.py +++ b/userStories/story4.py @@ -4,23 +4,20 @@ def runStory4(cursor): '''Runs user story 4: Prints a list coffees that have been described as "floral" :param cursor: Relevant cursor object to the database ''' - - unionTables = """ - SELECT DISTINCT RC.CoffeeName, RC.CoffeeID - FROM CoffeeTasting AS CT JOIN RoastedCoffee as RC - WHERE RC.Description LIKE '%floral%' - UNION + coffeeAndTasting = """ SELECT DISTINCT RC.CoffeeName, RC.CoffeeID - FROM CoffeeTasting AS CT NATURAL INNER JOIN RoastedCoffee as RC - WHERE CT.TastingNotes LIKE '%floral%' + FROM RoastedCoffee as RC LEFT JOIN CoffeeTasting AS CT USING (CoffeeID) + INNER JOIN (SELECT RC.CoffeeName, RC.CoffeeID + FROM CoffeeTasting AS CT INNER JOIN RoastedCoffee AS RC USING (CoffeeID)) + WHERE (CT.TastingNotes LIKE '%floral%') OR (RC.Description LIKE '%floral%') """ queryRBxR = """ - SELECT DISTINCT RoastedBy.CoffeeID, Roastery.RoasteryName - FROM RoastedBy NATURAL INNER JOIN Roastery + SELECT RoastedBy.CoffeeID, Roastery.RoasteryName + FROM RoastedBy INNER JOIN Roastery USING (RoasteryID) """ queryUserStory4 = """ - SELECT DISTINCT CoffeeName, RoasteryName - FROM ("""+unionTables+""") NATURAL INNER JOIN (""" + queryRBxR + """)""" + SELECT CoffeeName, RoasteryName + FROM ("""+coffeeAndTasting+""") INNER JOIN (""" + queryRBxR + """) USING (CoffeeID)""" try: cursor.execute(queryUserStory4) print("Coffees that are described as floral:") diff --git a/userStories/story5.py b/userStories/story5.py index 926c24884c12ee61e95faac620a0b244217c20f5..b54d9bdd3f321b79e2e91566e507f4e624cace7f 100644 --- a/userStories/story5.py +++ b/userStories/story5.py @@ -26,8 +26,8 @@ def runStory5(cursor): queryUserStory5 = """ SELECT CoffeeName, RoasteryName - FROM ((""" + queryPNxBatch + """) NATURAL INNER JOIN (""" + queryCoffeeInfo + """)) - NATURAL INNER JOIN (""" + queryFarmWithLocation + """) + FROM ((""" + queryPNxBatch + """) INNER JOIN (""" + queryCoffeeInfo + """) USING(BatchID)) + INNER JOIN (""" + queryFarmWithLocation + """) USING (FarmID) """ try: cursor.execute(queryUserStory5)