我一直试图计算一个标签输入数据库的次数,并将其与标签一起输入的次数显示在数据库中,就像在StackOverflow上一样,但我似乎无法有人可以帮助我吗?
到目前为止,我可以得到标签,但不是计数.
在此先感谢您的帮助!
$dbc = MysqLi_query($MysqLi,"SELECT tags.*, posts_tags.*
FROM tags
INNER JOIN posts_tags ON tags.id = posts_tags.tag_id
GROUP BY tags.tag
ORDER BY tags.tag ASC");
if (!$dbc) {
print MysqLi_error($MysqLi);
}
while($row = MysqLi_fetch_assoc($dbc)) {
$tag = $row['tag'];
echo '<a href="http://localhost/tags/">' . $tag . '</a>';
}
解决方法:
您可能想尝试以下方法:
SELECT tags.tag, COUNT(disTINCT posts_tags.post_id) as number_of_tags
FROM tags
INNER JOIN posts_tags ON tags.id = posts_tags.tag_id
GROUP BY tags.tag
ORDER BY tags.tag ASC;
测试用例:
CREATE TABLE tags (id int, tag varchar(10));
CREATE TABLE posts_tags (post_id int, tag_id int);
INSERT INTO tags VALUES (1, 'javascript');
INSERT INTO tags VALUES (2, 'PHP');
INSERT INTO tags VALUES (3, 'MysqL');
INSERT INTO posts_tags VALUES (1, 1);
INSERT INTO posts_tags VALUES (2, 2);
INSERT INTO posts_tags VALUES (3, 1);
INSERT INTO posts_tags VALUES (4, 2);
INSERT INTO posts_tags VALUES (5, 3);
INSERT INTO posts_tags VALUES (6, 1);
INSERT INTO posts_tags VALUES (7, 1);
INSERT INTO posts_tags VALUES (8, 2);
INSERT INTO posts_tags VALUES (9, 2);
INSERT INTO posts_tags VALUES (10, 1);
结果:
+------------+----------------+
| tag | number_of_tags |
+------------+----------------+
| javascript | 5 |
| MysqL | 1 |
| PHP | 4 |
+------------+----------------+
3 rows in set (0.00 sec)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。