例如,如何计算标记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");
答案 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