Mysql 已联接表上的联接表

Mysql 已联接表上的联接表,mysql,database,join,Mysql,Database,Join,我正在努力拼凑一个连接3个表的select语句 以下是数据库: CREATE TABLE Beerstyles ( style_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, style_name VARCHAR(50) NOT NULL )ENGINE=InnoDB; CREATE TABLE Breweries ( brew_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, boo

我正在努力拼凑一个连接3个表的select语句

以下是数据库:

CREATE TABLE Beerstyles
(
  style_id     INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  style_name   VARCHAR(50) NOT NULL
)ENGINE=InnoDB;

CREATE TABLE Breweries
(
  brew_id   INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  booth_num VARCHAR(10) NOT NULL,
  brew_name VARCHAR(50) NOT NULL
)ENGINE=InnoDB;

CREATE TABLE Beers
(
  beer_id      INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  beer_name    VARCHAR(50) NOT NULL,
  alc_vol      DECIMAL(2,1) NOT NULL,
  fk_style_id  INT NOT NULL,
  fk_brew_id   INT NOT NULL
)ENGINE=InnoDB;

CREATE TABLE Favorites
(
  fav_id      INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  user_id     VARCHAR(55) NOT NULL,
  fk_beer_id  INT NOT NULL,
  fav_comment VARCHAR(255)
)ENGINE=InnoDB;


ALTER TABLE Beers ADD CONSTRAINT FK_BeerStyle_Style FOREIGN KEY (fk_style_id) REFERENCES    Beerstyles (style_id);
ALTER TABLE Beers ADD CONSTRAINT FK_BeerBrew_Brew FOREIGN KEY (fk_brew_id) REFERENCES Breweries (brew_id);
ALTER TABLE Favorites ADD CONSTRAINT FK_FavBeer_Beer FOREIGN KEY (fk_beer_id) REFERENCES Beers (beer_id);
这是第一部分:

SELECT * FROM Favorites JOIN Beers ON Favorites.fk_beer_id = Beers.beer_id
我需要混合brew_名称,但未能正确使用。当我试图加入Favorites.fk_brew_id=Breweries.brew_id上的Breweries时,我在“ON子句”中出现一个错误,称为未知列“Favorites.fk_brew_id”

希望你们能帮助我:

收藏夹表中没有fk_brew_id,但您必须将连接条件添加到Beers表中,而不是添加到收藏夹表中,如下所示:

SELECT 
  bw.brew_name,
  b.beer_name,
  f.fav_comment,
  ...
FROM Favorites       AS f
INNER JOIN Beers     AS b  ON f.fk_beer_id = b.beer_id
INNER JOIN Breweries AS bw ON b.fk_brew_id = bw.brew_id;

当然,在现实生活中,你永远不应该使用select*。当您有一个连接时,您会重复列,导致查询速度变慢

您最喜欢的栏目是fk_beer_id,而不是fk_brew_id。谢谢!我做了一个更改以避免“选择*”:选择用户id、啤酒名称、alc音量、brew名称、,我仍然不明白信的结尾是怎么写的。我还不明白信的结尾是怎么写的。。
SELECT * 
FROM Favorites 
JOIN Beers 
   ON Favorites.fk_beer_id = Beers.beer_id
JOIN Breweries 
   ON Beers.fk_brew_id = Breweries.brew_id