2014-12-23 166 views
0

我正在使用C#,MySQL来监视一些油箱我目前正在使用一个函数来监视坦克,为每个坦克分配三个状态之一(好,警告,关键)。比较两个不同表中的列

这个程序必须做的事情之一就是在坦克状态改变时发送一封电子邮件。我需要帮助的是如何比较来自2个不同表格的坦克状态以确定状态是否已经改变。

这里有两个表我使用的是:

罐表

tank_number INT, 
station_id int, 
ip_address varchar(30), 
product varchar(30), 
alert_level1 int, 
alert_level2 int, 
gallons int, 
date, 
status 

状态表

ip_address varchar(30), 
status varchar(5), 
gallons int, 
tank_number int, 
date 
+0

状态表中每个水箱是否有多个条目,还是一对一? –

+0

没有坦克表每15分钟更新一次,因此每个坦克只有一个状态 –

+1

@PaulBulling,您可以在状态表上添加一个更新后触发器,并在此处具有检查逻辑。根据您的知识,您可以选择进一步在哪里实施电子邮件发送机制。但是对于状态变化检测,触发器可能有所帮助。 –

回答

0

这应该只是一个简单的两个表的连接。沿着线的东西:

SELECT s.status , 
     t.tank_number 
    FROM status s INNER JOIN tank t ON s.tank_number = t.tank_number 
WHERE s.status <> t.status 

这假定tank_number是坦克的唯一标识符和检索只是那些状态已经改变坦克。