首先讓我顯示我的表格數據,然後我會解釋我的問題。MySQL聯盟計數
MySQL表結構
CREATE TABLE more_tags (
tag_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
more_id INT UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
tag_name VARCHAR(255) NOT NULL,
PRIMARY KEY (tag_id),
UNIQUE KEY (more_id, user_id, tag_name)
);
CREATE TABLE tags(
tag_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
another_id INT UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
tag_name VARCHAR(255) NOT NULL,
PRIMARY KEY (tag_id),
UNIQUE KEY (another_id, user_id, tag_name)
);
more_tads表數據
tag_id tag_name
10 apple
192 apple
197 apple
203 apple
207 apple
217 news
190 bff
196 cape
標籤表數據
tag_id tag_name
1 apple
2 time
3 bff
好的,我早些時候問過一些類似的問題。但是,現在由於某種原因,我不能得到查詢計數兩個表的標籤,只計算從一個表的標籤,如下面
的例子電流輸出繼電器
tag_id tag_name num
1 apple 5
2 bff 1
3 cape 1
4 time 1
但我想把所有類似的標籤,並指望他們在那裏有多少次在表中發現,如下面的例子
所需的輸出
tag_id tag_name num
1 apple 6
2 bff 2
3 cape 1
4 time 1
當前MySQL查詢
SELECT *
FROM(SELECT `more_tags`.`tag_id`, `more_tags`.`tag_name`, COUNT(`more_tags`.`tag_name`) as 'num'
FROM `more_tags`
INNER JOIN `users` ON `more_tags`.`user_id` = `users`.`user_id`
WHERE `users`.`active` IS NULL
AND `users`.`deletion` = '0'
GROUP BY `more_tags`.`tag_name`
UNION(
SELECT `tags`.`tag_id`, `tags`.`tag_name`, COUNT(`tags`.`tag_name`) as 'num'
FROM `tags`
INNER JOIN `users` ON `tags`.`user_id` = `users`.`user_id`
WHERE `users`.`active` IS NULL
AND `users`.`deletion` = '0'
GROUP BY `tags`.`tag_name`))
AS table_1
GROUP BY `tag_name`
ORDER BY `tag_name` ASC
你可以嘗試刪除第二個括號的(())嗎? –
@Bhavik Shah,還沒有試圖找到解決方案。 –