对此可能有一个非常简单的解决方案,但我无法找到一种适当的谷歌方式。 我的数据库中有三个表。 第一个是"客户"它有(ID,名称,用户名等) 第二个是"吸引力"它有(AttractionID,名称,位置等..) 第三个"收藏夹"用户可以使用第一个用户ID从第二个表中保存收藏夹: 这是第三个表:
CREATE TABLE Favorites (
FavID INT NOT NULL,
ID INT NOT NULL,
AttractionID INT NOT NULL,
PRIMARY KEY (FavID),
FOREIGN KEY (ID) REFERENCES customer(ID),
FOREIGN KEY (AttractionID) REFERENCES attraction(AttractionID)
);
我可以插入到表中但是为了显示来自引用表的信息,我需要使用什么sql查询? 假设用户已将其用户ID和喜爱的景点ID保存到收藏表中,如何显示吸引表中与收藏夹表中保存的外键吸引ID相对应的名称和位置? 感谢
答案 0 :(得分:0)
你应该使用JOIN:
SELECT * FROM Favorites f
INNER JOIN Attraction a ON f.AttractionId = a.AttractionId
INNER JOIN customer c ON f.Id = c.id
f,a和c只是别名,使引用更简单,你也可以写
SELECT * FROM Favorites
INNER JOIN Attraction ON Favorites.AttractionId = Attraction.AttractionId
INNER JOIN customer ON Favorites.Id = customer.id
或使用AS,这使得它更清晰(但更长,所以我更喜欢第一种方式)
SELECT * FROM Favorites AS f
INNER JOIN Attraction AS a ON f.AttractionId = a.AttractionId
INNER JOIN customer AS c ON f.Id = c.id