How are parenthesis used on INNER JOIN statements

Viewed 4014

I can't seem to figure out the proper use of parenthesis on a innerjoin statement. For example why are there 3 parenthesis needed to be placed after the FROM clause when there are a total of 4 INNERJOINS performed in this statement.

SELECT Recipe_Classes.RecipeClassDescription,Recipes.RecipeTitle,Recipes.Preparation, Ingredients.IngredientName, Recipe_Ingredients.RecipeSeqNo,   Recipe_Ingredients.Amount, Measurements.MeasurementDescription 
FROM (((Recipe_Classes 
INNER JOIN Recipes 
ON Recipe_Classes.RecipeClassID = Recipes.RecipeClassID) 
INNER JOIN Recipe_Ingredients 
ON Recipes.RecipeID = Recipe_Ingredients.RecipeID) 
INNER JOIN Ingredients 
ON Ingredients.IngredientID = Recipe_Ingredients.IngredientID) 
INNER JOIN Measurements 
ON Measurements.MeasureAmountID = Recipe_Ingredients.MeasureAmountID 
ORDER BY RecipeTitle, RecipeSeqNo
1 Answers

There is no need for parentheses. But table aliases are recommended!

SELECT rc.RecipeClassDescription, Recipes.RecipeTitle, r.Preparation, 
       i.IngredientName, ri.RecipeSeqNo, ri.Amount, m.MeasurementDescription 
FROM Recipe_Classes rc INNER JOIN
     Recipes r
     ON rc.RecipeClassID = r.RecipeClassID INNER JOIN
     Recipe_Ingredients ri
     ON r.RecipeID = ri.RecipeID INNER JOIN
     Ingredients i
     ON i.IngredientID = ri.IngredientID INNER JOIN
     Measurements m
     ON m.MeasureAmountID = ri.MeasureAmountID
ORDER BY RecipeTitle, RecipeSeqNo;

Although parentheses are theoretically useful (in some situations with outer joins), I don't find that they are needed in practice. The one exception is MS Acccess, which requires parentheses for multiple joins.

Related