我有一个由 3 部分组成的问题,这给我带来了麻烦,如果我查询 1 个表,我知道如何让表正常工作
一次但我似乎不知道如何将两者结合起来tags
and more_tags
表以获得相同的结果。
下面列出了我遇到的 3 个主要问题。
问题1
我希望能够将两个中的相同标签分组tags
and more_tags
表。
问题2
我还希望能够显示每个表中其他表中不存在的标签。
问题3
我还想计算标签在两者中出现的总次数tags
and more_tags
tables.
MYSQL 表
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
GROUP BY `tags`.`tag_name`
ORDER BY `tags`.`tag_name` ASC";
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
GROUP BY `more_tags`.`tag_name`
ORDER BY `more_tags`.`tag_name` ASC";
所需输出
tag_id tag_name num
10 apple 12
192 pear 1
197 bored 1
203 sad 3
207 ads 2
217 news 1
190 bf 1
196 cape 1
问题一:
SELECT tag_id, tag_name, count(*)
FROM (
SELECT tag_id, tag_name FROM tags
UNION ALL
SELECT tag_id, tag_name FROM more_tags
) s
GROUP BY tag_id, tag_name
问题2:
SELECT tag_id, tag_name, 'not present in more tags' as description
FROM tags LEFT JOIN more_tags ON tags.tag_id=more_tags.tag_id
WHERE more_tags.tag_id IS NULL
UNION ALL
SELECT tag_id, tag_name, 'not present in tags' as description
FROM tags RIGHT JOIN more_tags ON tags.tag_id=more_tags.tag_id
WHERE tags.tag_id IS NULL
问题3:
SELECT tag_id, tag_name, COUNT(*)
FROM tags INNER JOIN more_tags ON tags.tag_id=more_tags.tag_id
GROUP BY tag_id, tag_name
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)