1

アップデート:

OK、あなたの応答のクエリはうまく機能します! 今、私は望ましくない出力に出くわしました。ログ テーブルには、同じ evid の下に複数のログが存在する場合があります。これにより、クエリは同じイベント情報を持つ複数の行を返します。すべての log.text を一致する log.evid と連結して、出力を目的の情報のみに制限する方法はありますか?

テーブルから特定の列を選択し、同じ DB の別のテーブルの特定の列と比較する mysql クエリを作成しようとしています。イベント ID (evid) が一致する行のみを表示したい。2 つのテーブルに名前が付けられstatus、テーブルlogから必要な列のみが名前付けされ、events.logevidtext

私が思いついたクエリは、Zenoss コンソールにすべてのアクティブなアラートを表示します。

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

events.status基本的に、結合する方法を理解しevents.log、一致する行のみを表示する必要がありますevid

私はこの DB への読み取りアクセス権しか持っていませんが、書き込みアクセス権が必要な場合は、適切な人に甘い言葉をかけてアクセス権を得ることができます。

私は完全な 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 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 に答える
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 に答える