如何打印关联的帖子和标签?

时间:2013-05-17 07:53:13

标签: php mysql

这是我的数据库架构:

Post:
id
title
body
date

Tag:
id
title

Post_Tag:
id
id_post
id_tag

Comment:
id
id_post
body
date

帖子和标签之间有很多关系。

我需要在主页上打印最新的10个帖子:

<a href="post.php?id=ID_POST">POST_TITLE</a>

POST_BODY

<a href="tag.php?id=ID_TAG_1"> TAG_TITLE_1 </a>
<a href="tag.php?id=ID_TAG_2"> TAG_TITLE_2 </a>
<a href="tag.php?id=ID_TAG_3"> TAG_TITLE_3 </a>

COMMENTS_NUMBER

我写了这个查询但是在每个帖子中为php提取标签有点复杂:

SELECT p.title, p.id, p.date, t.title, t.id, COUNT(c.id)
             FROM post p
             LEFT JOIN post_tag pt 
             ON p.id=pt.id_post
             LEFT JOIN tag t 
             ON t.id=pt.id_tag
             LEFT JOIN comment c
             ON p.id=c.id_post
             GROUP BY p.title, p.id, p.date, t.title
             ORDER BY p.date DESC

有更有效的方法吗?

1 个答案:

答案 0 :(得分:0)

1.在GROUP BY中不需要使用这么多列:

GROUP BY p.id

将起作用 - 您将获得相应帖子的评论数量。

2.在选择10个帖子时,将LIMIT添加到查询中:

LIMIT 0,10