【发布时间】:2019-04-17 22:40:43
【问题描述】:
我目前有一个 SQL 选择语句,它成功地执行了以下操作,它提供了过去两天的状态:
SELECT c.host, from_unixtime(a.clock), a.value, b.name
FROM
zabbix.history_uint a,
zabbix.items b,
zabbix.hosts c,
zabbix.groups g,
zabbix.hosts_groups hg
WHERE c.hostid = hg.hostid
AND g.groupid = hg.groupid
AND b.itemid=a.itemid
AND b.hostid=c.hostid
AND (b.name = "nodeAlive")
AND a.clock > 1539489622
AND c.host = "LONDON01";
输出:
+------------+------------------------+-------+-----------+
| host | from_unixtime(a.clock) | value | name |
+------------+------------------------+-------+-----------+
| LONDON01 | 2018-11-13 00:15:35 | 1 | nodeAlive |
| LONDON01 | 2018-11-14 00:15:35 | 1 | nodeAlive |
| LONDON01 | 2018-11-13 00:15:35 | 1 | nodeAlive |
| LONDON01 | 2018-11-14 00:15:35 | 1 | nodeAlive |
| LONDON01 | 2018-11-13 00:15:35 | 1 | nodeAlive |
| LONDON01 | 2018-11-14 00:15:35 | 1 | nodeAlive |
+------------+------------------------+-------+-----------+
我现在需要查找 MADRID03、TORONTO52、NEWYORK77 和 >1000 台其他主机的状态。
是否可以从文本文件执行此操作并输出到另一个文件?如果是这样,如何修改语法?
感谢并感谢它
【问题讨论】:
-
你是否得到前两天表中所有主机的状态?或者
> 1000 other hosts只是表中所有主机的一个子集?根据您的输出示例,您真的想要重复的结果吗?这些可以使用SELECT DISTINCT...过滤。 -
啊!我想要所有 1000 多个主机的状态。有重复的输出是可以的,尽管我将继续调整语句以包含 DISTINCT。
-
我想避免在 SELECT DISTINCT 语句中输入 1000 多个主机
-
您是否使用 PHP 之类的语言来执行此操作?
-
我没有使用 PHP(也不知道如何使用)。我正在使用纯 SQL 语句
标签: mysql database select mariadb