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 trial

Databases Querying Relational Databases Joining Table Data with SQL JOIN Queries

Sean McLeskey
Sean McLeskey
2,033 Points

Why 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

I'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

If 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
Sean McLeskey
2,033 Points

Hi 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;