mysql - 在已连接的表上连接表

标签 mysql database join

我正在努力组合一个连接 3 个表的选择语句。

这是数据库:

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_name,但没能正确处理。当我尝试加入 Breweries (ON Favorites.fk_brew_id = Breweries.brew_id) 时,我收到一条错误消息“‘on 子句’中的未知列‘Favorites.fk_brew_id’”

希望你们能帮帮我 :)

最佳答案

Favorite 表中没有fk_brew_id,但您必须在Beers 中添加JOIN 条件> 表格不是像这样的 Favorite 表格:

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;

关于mysql - 在已连接的表上连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16613274/

相关文章:

mysql - 如何在查询中使用别名在 mysql 中创建条件

php - 修补基于时间的 sql 注入(inject)

java - 无法使用 Intellij 配置 JPA

mysql - 理解 MySQL Explain 输出

python - 从 Python 执行存储过程

c# - 简单的Linqpad Linq join语句,选择所有字段

php - 未找到列 : Unknown column using Model reference but work with object reference laravel 6

mysql - SQL - 行具有最新日期的分组依据

sql - 当表列相同时 EXCEPT 执行速度是否比 JOIN 更快

php - 使用连接和子查询优化 mysql 查询