所以我是MySQL的新手,并且遇到了一些麻烦。我有一张名为book_genres的表格,另一张名为book。需要帮助使用SELECT DISTINCT结果搜索MySQL数据库
book_genres
+-------+---------+
|book_id| genre |
+-------+---------+
| 1 | Horror |
| 1 | Comedy |
| 2 | Romance |
| 2 | Comedy |
+-------+---------+
books
+-------+---------+
|book_id| title |
+-------+---------+
| 1 | A Book |
| 2 | B Book |
| 3 | C Book |
+-------+---------+
我使用下面的命令把所有具有3个选择流派book_ids:
SELECT DISTINCT a.book_id, b.genre AS genre1, c.genre AS genre2, d.genre AS genre3
FROM book_genres a
JOIN book_genres b ON a.book_id = b.book_id AND b.genre LIKE 'Romance'
JOIN book_genres c ON a.book_id = c.book_id AND c.genre LIKE 'Action'
JOIN book_genres d ON a.book_id = d.book_id AND d.genre LIKE 'Comedy'
GROUP BY book_id
我想要做的就是现在用的拉所有书名从书本上表什么在此搜索中找到book_ids。我不确定是否有更简单的方法来做到这一点,但这是我所能想到的。
谢谢任何人谁可以帮忙!
由于您在'LIKE'子句中没有使用任何通配符,它们是否真的需要'LIKE'?另外,根据上面的示例数据,您的查询不会返回任何结果。没有'book_id'与相应的行的浪漫,动作和喜剧类型。 – Adrian