Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialSean McLeskey
2,033 PointsWhy am I seeing an "ambiguous column name" error when I'm trying to join tables if the column name is spelled correctly?
I am seeing an "ambiguous column name" error when I'm trying to join tables if the column name is spelled correctly?
2 Answers
KRIS NIKOLAISEN
54,971 PointsI'm not sure how the checker is interpreting this but if you remove
,Model
before
INNER JOIN Car ON Model.ModelID = Car.ModelID
you'll end up with the following:
SELECT MakeName AS "Make Name", ModelName AS "Model Name", VIN, StickerPrice AS "Sticker Price" FROM Make INNER JOIN Model ON Make.MakeID = Model.MakeID INNER JOIN Car ON Model.ModelID = Car.ModelID;
which will pass
KRIS NIKOLAISEN
54,971 PointsIf you post your SQL it will be easier to help. Are you not including the table names in your join fields? i.e
INNER JOIN Car ON Model.ModelID = Car.ModelID
Multiple columns with the same name need to be distinguished by table name. Otherwise the data engine doesn't know which column in which table you are referring to.
Sean McLeskey
2,033 PointsHi Kris: Thanks for your response. There are three tables Car, Model, and Make. The confusing thing to me is that the ModelName column only exists in the Model table.
The SQL code that generates the error is below. I have tried variations around this including adding Model.ModelName in place of ModelName.
SELECT MakeName AS "Make Name", ModelName AS "Model Name", VIN, StickerPrice AS "Sticker Price" FROM Make INNER JOIN Model ON Make.MakeID = Model.MakeID, Model INNER JOIN Car ON Model.ModelID = Car.ModelID;