1

更新:

好的,所以您的回复中的查询效果很好!现在,我遇到了一些不太理想的输出。在日志表中出现有时同一个evid下有多个日志。这会导致查询返回具有相同事件信息的多行。有没有办法将所有 log.text 与匹配的 log.evid 连接起来,这样输出仅限于所需的信息?

我正在尝试制定一个 mysql 查询,该查询将从表中选择某些列,并将它们与同一数据库上不同表中的某些列进行比较。我只想显示具有匹配事件 ID 的行(evid)。这两个表被命名status并且log我需要的events.log表中唯一的列被命名evidtext

我提出的查询显示了 Zenoss 控制台中的所有活动警报:

SELECT device, component, summary, count, ownerid, evid
  FROM events.status
 WHERE severity >2;

基本上我需要弄清楚如何加入events.status并且events.log只显示匹配的行evid

我只有对该数据库的读取权限,但如果需要写入权限,我可能会甜言蜜语让合适的人获得访问权限。

非常感谢您的帮助,因为我是一个 DB 菜鸟。

4

5 回答 5

1
SELECT device, component, summary, count, ownerid, l.evid,l.text  
FROM events.status s inner join events.log l on s.evid=l.evid 
WHERE severity >2;
于 2012-08-02T09:27:11.567 回答
0

使用内连接

 select l.text, s.device, s.component, s.summary, s.count, s.ownerid, s.evid 
 from  events.status s inner join events.logs l on s.evid=l.evid 
 where s.severity>2
于 2012-08-02T09:27:15.517 回答
0

尝试

SELECT S.device, S.component, S.summary, S.count, S.ownerid, L.evid,L.text 
FROM events.status S
join events.log L
on S.evid=L.evid
WHERE S.severity >2
于 2012-08-02T09:27:23.280 回答
0
SELECT device, component, summary, count, ownerid, st.evid, lg.text
  FROM events.status st
 INNER JOIN events.log lg ON st.evid = lg.evid
 WHERE st.severity >2
于 2012-08-02T09:28:33.270 回答
0
SELECT device, component, summary, count, ownerid, events.status.evid, events.log.* 
FROM events.status, events.log 
WHERE events.status.evid = events.log.evid
AND severity >2;
于 2012-08-02T09:29:10.483 回答