Mysql, как объединить и сгруппировать два столбца на разных таблицах - PullRequest
0 голосов
/ 09 июля 2019

У меня есть две таблицы в MySQL:

table name = 'static':
+----+----------+-----------+
| id | username | ip        |
+----+----------+-----------+
| 1  | foo      | 172.0.0.1 |
+----+----------+-----------+
| 2  | bar      | 172.0.0.2 |
+----+----------+-----------+
| 3  | baz      | 172.0.0.3 |
+----+----------+-----------+

table name = 'dynamic':
+----+----------+-----------+
| id | username | ip        |
+----+----------+-----------+
| 1  | bill     | 172.0.0.1 |
+----+----------+-----------+
| 2  | ben      | 172.0.0.4 |
+----+----------+-----------+
| 3  | hen      | 172.0.0.5 |
+----+----------+-----------+

Что я хочу, так это объединить столбцы ip в обеих таблицах, затем сгруппировать их по ip и вернуть количество идентичных ip, которые были сгруппированы.

Пример результата:

+-----------+----------+
| ip        | quantity |
+-----------+----------+
| 172.0.0.1 | 2        |
+-----------+----------+
| 172.0.0.2 | 1        |
+-----------+----------+
| 172.0.0.3 | 1        |
+-----------+----------+
| 172.0.0.4 | 1        |
+-----------+----------+
| 172.0.0.5 | 1        |
+-----------+----------+

1 Ответ

0 голосов
/ 09 июля 2019

Вам не нужно объединение, но UNION ALL, а затем группировка:

select t.ip, count(*) quantity from (
  select ip from static
  union all
  select ip from dynamic
) t
group by t.ip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...