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 trialNelson Govea
Courses Plus Student 1,951 PointsINNER JOIN DataBase
Continue to get an error:
Challenge Task 2 of 5
In a car database there is a Make table with columns, MakeID and MakeName, a Model table with columns, ModelID, MakeID and ModelName and a Car table with columns, CarID, ModelID, VIN, ModelYear and StickerPrice.
For all cars in the database, show Make Name, Model Name, VIN and Sticker Price from the Model and Car tables in one result set.
Type in your command below.
Bummer! Your query didn't select the MakeName
, ModelName
, VIN
and StickerPrice
!
SELECT
MakeName, ModelName, VIN, StickerPrice
FROM
Car
INNER JOIN
Model ON Model.ModelD = Car.ModelID
INNER JOIN
Make ON Make.MakeID = Car.ModelID;
Duncan Kile
6,341 PointsYour JOIN most likely isn't working because you are joining the modelID to the makeID on your second join. You want to join a makeID to a makeID and/or a modelID to a modelID.
Also, you're asking the car table for things that aren't in that table, like makename and modelname. Those are in the other tables, so you need to let it know where by either using the form <alias>.<columnname> or <tablename>.<columnname> .
2 Answers
Steven Parker
231,271 PointsCheck your JOIN
criteria.
Normally, you'll perform JOIN
s with ON
columns that represent the same thing. This is what you have in the first JOIN
using two ModelID
columns.
But as Duncan suggested, you seem to have mismatched criteria in the second JOIN
, using one MakeID
and one ModelID
. I suspect you are also looking at the wrong table for one of the terms. I'd guess you probably meant to write:
... ON Make.MakeID = Model.MakeID
ddod
Courses Plus Student 594 PointsMany cars to 1 model and many models to 1 maker. You can't access the attribute MakeName without the Make table. Considering VIN, StickerPrice are only on the Car table, you need all 3 tables and 2 join statements to connect them. an Access command would look like:
SELECT MakeName, ModelName, VIN, StickerPrice FROM Make, Model, Car WHERE Model.MakeID=Make.MakeID AND Car.ModelID=Model.ModelID;
Steven Parker
231,271 PointsSteven Parker
231,271 PointsPlease provide a link to the challenge page to facilitate a complete analysis.