【发布时间】:2012-02-04 22:51:30
【问题描述】:
我正在为我的作业编写一些博客软件,我有一个 posts 表、tags 表和 post_tags。 post_tags 的存在是为了消除多对多关系(一个帖子可能有多个标签,一个标签可能属于多个帖子)。以下是这些表的字段:
帖子
| p_id | title | clean_title | body | published | u_id |
标签
| t_id | name | slug |
post_tags
| t_id | p_id |
希望您能看到我在这里所做的事情,标签使用post_tags 表链接到帖子。现在,我想根据posts 表的clean_title 字段从tags 表中检索name 和slug。基本上,如果我提供clean_name,我想要与该帖子关联的所有标签。我知道我必须使用 SQL JOINS,但我不知道如何使用它们。
这是我尝试过的:
$query = $this->db->query("SELECT name, slug
FROM tags
LEFT JOIN post_tags ON posts.p_id=post_tags.p_id
LEFT JOIN tags ON post_tags.t_id=tags.t_id
WHERE posts.clean_title = ?
ORDER BY name DESC");
但我收到此错误:Not unique table/alias: 'tags'
谢谢!
【问题讨论】:
标签: php mysql sql database-schema