如何显示引用表中的信息?

时间:2014-04-24 17:29:19

标签: mysql sql

对此可能有一个非常简单的解决方案,但我无法找到一种适当的谷歌方式。 我的数据库中有三个表。 第一个是"客户"它有(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相对应的名称和位置? 感谢

1 个答案:

答案 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