从内部联接中的联接 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 book
和 book_to_genre
之间,另一个在 tables book_to_genre
和 Genre
之间
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";
我有以下四个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 book
和 book_to_genre
之间,另一个在 tables book_to_genre
和 Genre
之间
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";