下面的语句完成的功能如下:将超出警戒线的机器向相关人员发出告警
1 从两个表A,B中查找信息展示出来(a.vol1 b.vol1 a.vol2 b.vol2 a.ID)
2 在查找的过程中需要满足一定的条件,也就是某些记录才会被显示 ( where a.id = b.id and a.ID in (***))
3 那些被显示的记录每一行都有一个ID列
4 当且仅当一行中的id在另一个查询结果中才会显示此行记录( and a.ID in (***) )
5 子查询用来判断实时状态是否超出了预警值,并返回那些超出预警值的前置机的ID号,将这种种全部超出预警值的ID号做成一个集合,凡是id在此集合中的记录都应该被显示出来
6 此查询具有一般意义,具有重要参考价值
SELECT a.vol1 , b.vol 1, a.vol2 ,b.vol2 , a.ID
from scp_person_repair_node as a , sec_user as b
where a.ID = b.ID and a.ID in
( select b1.ID
from scp_fepstatus as b1 , scp_alarm_profit as b2
where b1.ID = b2.ID and
( b1.SCP_CPU > b2.SCP_CPU_ALARM_VALUE or
b1.SCP_MEMORY_USED > b2.SCP_MEMEORY_ALARM_VALUE or
b1.SCP_STORAGE_USED > b2.SCP_STORY_ALARM_VALUE
)
)