Например, как я могу подсчитать, сколько раз тег 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");
Я не совсем понимаю, что такое внешние ключи, но предполагая, что a_tags.a_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
Woudln't
SELECT * FROM `a_tags` WHERE a_id = (SELECT `id` FROM `tags` WHERE `tag` = 'HTML')
работа?
Изменить: Возможно, это не то, что вы хотите. Если бы вы могли уточнить свой вопрос, это было бы полезно.
a_id
не только теги HTML.