用于连接2个表的SQL查询,仅显示具有匹配数据的行

时间:2012-08-02 09:22:40

标签: mysql sql zenoss

更新:

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

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

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

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

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

的行

我只有这个数据库的读访问权限,但是如果需要写访问权限,我可以很好地与正确的人交谈以获得访问权。

非常感谢您的帮助,因为我是一个完全没有DB的人。

5 个答案:

答案 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;