我是MySQL的新手,不知道如何编写我个人项目所需的查询。
在这个查询中,我有三个表需要进行对话- books、tags和books_tags (连接表)。
它们的基本结构相当基本--book和tag都有一个id列和一个name列(在book中称为“title”,在标签中称为“tag”)。books_tags表包含book_id和tag_id。
我希望能够编写一个返回如下内容的查询
TITLE | TAG
--------------------
BOOK ONE | PHP
BOOK ONE | MYSQL
BOOK ONE | OOP
BOOK TWO | CSS
BOOK TWO | HTML
BOOK THREE | JAVASCRIPT你明白了吧。我使用PHP循环和多个查询来做这件事,但是查询计数变得非常高,非常快,变得非常混乱。我想保持它的简洁性和简洁性。
发布于 2010-09-30 04:57:26
select b.title, t.tag
from books b
inner join books_tags bt on b.id = bt.book_id
inner join tags t on bt.tag_id = t.id
order by b.title, t.tag如果您还想列出没有标签的图书,您可以这样做:
select b.title, t.tag
from books b
left outer join books_tags bt on b.id = bt.book_id
left outer join tags t on bt.tag_id = t.id
order by b.title, t.taghttps://stackoverflow.com/questions/3825773
复制相似问题