我有几个表看起来像这样:
___________ ___________
| Books | | Tags |
|-----------| |-----------|
| book_id | | tag_id |
| book_name | | tag_name |
----------- -----------
以及连接“多对多关系”的连接表:
___________
| Books/Tags|
|-----------|
| book_id |
| tag_id |
-----------
我想做一个像这样的查询:
SELECT book_name, tag_name FROM books, tags WHERE tag_name = 'fiction'
有没有办法将books表“附加”到查询中的标签,因为它们之间有连接表?或者我是否必须执行三个查询,一个用于获取tag_id,另一个用于获取与tag_id匹配的book_id,第三个用于获取与tag_id匹配的book_name?
3 回答
是的,你可以做;加入:
这将返回具有“小说”标签的书籍列表 .
或者,您可以使用子查询来执行此操作:
要么:
是的,您可以在一个查询中执行此操作,这称为
JOIN
:你需要加入所有三个表