从内部联接中的联接 table 获取数据

Get data from a join table in inner join

我有以下四个table:

订阅:

book_id, duration, subscriber

图书:

book_id, book_name

类型:

genre_id, genre_name

book_to_genre:

genre_id, book_id

对于某个用户(订阅者),我想从订阅中获取所有行。书名应该从 table Book 中获取。我知道这是通过内部连接完成的:

SELECT Book.book_name, Subscription.duration from Subscription INNER JOIN Book on Subscription.book_id = Book.book_id where Subscription.subscriber = "somevalue";

如果我想从 table 流派中获取 genre_name,那本书的 Genre.genre_id = book_to_genre.genre_id 怎么办?

这是您初始查询的修改版本,它将 return genre_name:
- 我在 SELECT 部分
添加了字段 genre_name - 我添加了 table 别名以使其更易于阅读
- 我添加了 2 INNER JOIN:一个在 tables bookbook_to_genre 之间,另一个在 tables book_to_genreGenre 之间

SELECT b.book_name, s.duration, g.genre_name
FROM Subscription s
INNER JOIN Book b on s.book_id = b.book_id
INNER JOIN book_to_genre bg ON b.book_id = bg.book_id
INNER JOIN Genre g ON bg.genre_id = g.genre_id
where s.subscriber = "somevalue";

文档:
- SELECT
- JOIN