更新:
好的,您的回复中的查询效果很好!现在,我遇到了一些不太理想的输出。它出现在日志表中,有时在同一个evid下有多个日志。这会导致查询返回具有相同事件信息的多个行。有没有办法可以将所有log.text与匹配的log.evid连接起来,那样输出只限于所需的信息?
我正在尝试制定一个mysql查询,该查询将从表中选择某些列,并将它们与同一DB上不同表中的某些列进行比较。我想只显示具有匹配事件ID的行(evid)。这两个表名为status
和log
events.log
表中我需要的唯一列名为evid
和text
我提出的查询显示了Zenoss控制台中的所有活动警报:
SELECT device, component, summary, count, ownerid, evid
FROM events.status
WHERE severity >2;
基本上我需要弄清楚如何加入events.status
和events.log
,并且只显示匹配evid
我只有这个数据库的读访问权限,但是如果需要写访问权限,我可以很好地与正确的人交谈以获得访问权。
非常感谢您的帮助,因为我是一个完全没有DB的人。
答案 0 :(得分: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;
答案 1 :(得分: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
答案 2 :(得分: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
答案 3 :(得分: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
答案 4 :(得分: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;