从内连接中的连接表中获取数据

时间:2016-07-14 16:26:58

标签: mysql jointable

我有以下四个表:

订阅:

book_id, duration, subscriber

图书:

book_id, book_name

类型:

genre_id, genre_name

book_to_genre:

genre_id, book_id

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

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

如果我想从表格类型中获取genre_name,该书的Genre.genre_id = book_to_genre.genre_id,该怎么办?

1 个答案:

答案 0 :(得分:1)

以下是初始查询的修改版本,该版本将返回genre_name
- 我在genre_name部分中添加了字段SELECT - 我添加了表别名,以便于阅读 - 我添加了2 INNER JOIN:表bookbook_to_genre之间的一个,表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