2012-08-02 47 views
1

更新:SQL查询加入2个表格并只显示匹配数据的行

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

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

我想出显示查询所有活动警报在Zenoss的控制台:

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

基本上我需要弄清楚如何加入events.statusevents.log和独显的行具有匹配evid

我只有读访问该数据库,但如果写访问necess阿里,我可能会甜言蜜语地让人们进入。

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

+0

选择log.evid,从events.log升log.text内部联接events.status S ON l.evid = s.evid其中<您想要放置的任何条件>; – Shubhansh 2012-08-02 09:28:41

回答

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; 
+0

这太棒了!谢谢! – Kurt 2012-08-02 09:52:40

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 
+0

这一个工程,但有一个小错误。在SELECT之后,它应该是l.text – Kurt 2012-08-02 09:49:20

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 
+0

这个工作,但是有一个小的语法,但是L.evid和L.text应该用逗号分开。谢谢您的帮助! – Kurt 2012-08-02 09:50:50

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 
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; 
+0

这个很好用!谢谢! – Kurt 2012-08-02 09:54:12