2009-12-04 86 views
0

例如,如何計算標記HTML在a_id列中顯示的次數,然後按字母順序顯示與a_id列相關的所有標記。如何使用MySQL和PHP在兩個MySQL表之間進行計數?

這裏是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

有問題嗎? – 2009-12-04 16:10:33

+0

是的閱讀我希望解釋正確。 – myhut 2009-12-04 16:15:13

回答

0

Woudln't

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

工作?

編輯:這可能不是你想要它做的。如果你能澄清你的問題,那會很有幫助。

+0

我希望所有與'a_id'相關的標籤不僅僅是HTML標籤。 – myhut 2009-12-04 16:14:20

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 
相關問題