먼저 테이블 데이터를 보여 주면 내 문제를 설명 할 것입니다.MySQL UNION COUNT
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
좋아, 나는 어떤 비슷한 질문을 먼저 물었다. 하지만 지금은 어떤 이유로 나는 그러나 내가 원하는
현재 OUPUT에게 쿼리에만
아래 예 같이 한 테이블 태그 카운트 양쪽 테이블 태그를 카운트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
원하는 출력의 tag_id 정말 이해가되지 않습니다
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, 여전히 해결책을 찾고자하는 것이 아무것도 없습니다. –