我在一个小项目上工作,用户可以在其中激活和停用警报。 它包含几个实体,但是要重点关注的是“警报”和“警报活动”。 我的意图是,如果警报活动同时包含“触发”和“取消”事件,则它们应该互相抵消。
查询如下:
SELECT DISTINCT alarmid,
unixtimestamp,
latitude,
longitude,
severity,
u.userid AS requestuserid,
u.names AS requestname,
aa.alarmevent AS alarmevent
FROM alarms AS a
LEFT JOIN users AS u ON userid = useridfk
RIGHT JOIN usersgroups AS ug ON a.groupidfk = ug.groupidfk
RIGHT JOIN alarmactivity AS aa ON a.alarmid = aa.alarmidfk
WHERE unixtimestamp > (UNIX_TIMESTAMP()-1800)
ORDER BY requestuserid
结果基于以下实体:
警报
警报事件
在这种情况下,它应该返回零行。可以一次设置多个警报,因此,如果它包含两个“触发”行和一个“已取消”警报,则它应仅返回尚未取消的警报。 我尝试了不同的IF解决方案,但是由于它涉及一次检查几行,因此我有点卡住了。
我也尝试了PHP解决方案,但是由于某种原因,它仅在50%的时间内返回零行-因此,我尝试使用更优雅的解决方案,并希望它能同时解决此问题时间。
可以给我一个正确的方向吗?
编辑:只是忘记提及已取消的警报永远无法重新激活-因此另一个警报将在“警报”中生成新的一行。 另外,我不只是从实体中删除警报的原因是我想跟踪激活的警报。
答案 0 :(得分:1)
代替D:/test/dst
可以
FULL_PATH_TO_PYTHON_INTERPRTER -m spacy download en