如何使用MySQL和PHP在两个MySQL表之间进行计数?

时间:2009-12-04 16:08:05

标签: php mysql

例如,如何计算标记HTML在a_id列中显示的次数,然后按字母顺序显示与a_id列相关的所有标记。

这是MySQL表

CREATE TABLE a_tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag_id INT UNSIGNED NOT NULL,
a_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);

以下是MySQL表格中的内容

TABLE tags
id      tag
1       HTML
2       HTML
3       CSS
4       PHP
5       HTML

TABLE a_tags
id      tag_id      a_id
1       1           3
2       2           2
3       3           3
4       4           3
5       5           3

以下是代码。

$result = mysql_query("SELECT a_tags.*, tags.* 
                       FROM a_tags 
                       INNER JOIN tags ON tags.id = a_tags.tag_id 
                       WHERE a_tags.users_a_id=3
                       ORDER BY users_a_id DESC");

2 个答案:

答案 0 :(得分:0)

岂不

SELECT * FROM `a_tags` WHERE a_id = (SELECT `id` FROM `tags` WHERE `tag` = 'HTML')

工作?

编辑:这可能不是您想要它做的。如果你能澄清你的问题,那就会有所帮助。

答案 1 :(得分:0)

我不太清楚外键是什么,但假设a_tags.a_id映射到tags.id然后尝试这个。

SELECT tags.tag,COUNT(a_tags.a_id) FROM a_tags
JOIN tags ON a_tags.a_id = tags.id
GROUP BY a_tags.a_id