使用LEFT JOIN和History表的MySQL查询的正确结果

德拉斯科·加吉奇(Drasko Gajic)

您好我想创建查询,该查询返回公寓中电表的状态。

我有BR_Apartment,BR_Meter和BR_Parameter_Value表。仪表状态的默认值是活动的(1)状态更改后,所有历史记录数据都存储在BR_Parameter_Value表中。

我只需要公寓的计价器的最后状态或默认值。当前查询从BR_Parameter_Value返回所有记录。

我在SQL Fiddle上查询的示例

如果我建立的查询不正确,或者有人教我一些正确完成我想做的事的提示,有人可以纠正我吗?

编辑:

我已经基于戈登的答案更新了示例,如果日期是有效的,那么NOW()我可以使用它,但是我想对历史值也使用相同的查询,以根据特定日期获取仪表状态。

戈登·利诺夫(Gordon Linoff)

您可以使用它来从参数表中获取最新的参数值(只需existswhere子句中添加语句):

SELECT m.*, IFNULL( pva.ParameterValue, 1 ) AS MeterIsActive,
       IF( pva.ParameterValue <1, 'meterNotActive', '' ) AS MeterTypeClass
FROM BR_Meter m INNER JOIN
     BR_Apartment a
     ON ( m.ApartmentID = a.ApartmentID ) LEFT JOIN
     BR_Parameter_Value pva
     ON ( pva.ForeignID = m.MeterID AND
          pva.ParameterDate <= NOW( ) AND
          pva.ParameterID =12
        ) 
WHERE m.ApartmentID = 2452 and
      (not exists (select 1
                   from BR_Parameter_value pv2
                   where pv2.ForeignID = pva.ForeignID and
                         pv2.parameterid = pva.parameterid and
                         pv2.ParameterDate > pva.ParameterDate
                  )
      )

我不知道默认值是什么意思。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 JOIN 表的错误 MySQL 查询结果

来自分类Dev

使用INNER JOIN和LEFT JOIN的MySQL查询

来自分类Dev

使用LEFT OUTER JOIN建立查询结果

来自分类Dev

使用COUNT和LEFT JOIN进行缓慢的MYSQL查询

来自分类Dev

使用LEFT JOIN(SELECT)ORDER和LIMIT的MySQL查询

来自分类Dev

使用WHERE子句的MySQL LEFT JOIN查询

来自分类Dev

使用COUNT ON LEFT JOIN进行MySQL查询

来自分类Dev

当使用Join且2个表的字段名称相同时,如何在MYSQL查询中查明正确的结果?

来自分类Dev

MySQL LEFT JOIN无法使用多个表

来自分类Dev

查询正确结果所需的主LEFT JOIN表上所有子表上的不必要LEFT JOIN

来自分类Dev

使用 LEFT JOIN 查询 MongoDB

来自分类Dev

如何从LEFT JOIN MySQL表调用结果

来自分类Dev

如何使用主查询中的LEFT JOIN和子查询中的INNER JOIN优化MySQL SELECT查询?

来自分类Dev

使用COALESCE和LEFT OUTER JOIN的SQL查询

来自分类Dev

使用Laravel查询构建器和LEFT JOIN删除行

来自分类Dev

使用COALESCE和LEFT OUTER JOIN的SQL查询

来自分类Dev

(My)使用MAX和LEFT JOIN的SQL查询

来自分类Dev

使用Laravel查询构建器和LEFT JOIN删除行

来自分类Dev

MySQL-如何改善使用多个LEFT JOIN的复杂查询

来自分类Dev

MySQL查询-如何获取具有GROUP BY和WHERE条件的SUM并使用LEFT OUTER JOIN?

来自分类Dev

MySQL LEFT OUTER JOIN没有给出正确的结果

来自分类Dev

MYSQL搜索查询使用降序限制1和使用left

来自分类Dev

使用LEFT JOIN和UNION合并多个表

来自分类Dev

使用子查询语法的LEFT OUTER JOIN

来自分类Dev

如何使用SQL LEFT JOIN查询

来自分类Dev

如何使用SQL LEFT JOIN查询

来自分类Dev

使用 LEFT JOIN 进行慢速 SQL 查询

来自分类Dev

使用 Left Join 的 SQL 查询中的问题

来自分类Dev

表的GROUP BY在使用LEFT JOIN的MySQL中返回错误计数

Related 相关文章

  1. 1

    使用 JOIN 表的错误 MySQL 查询结果

  2. 2

    使用INNER JOIN和LEFT JOIN的MySQL查询

  3. 3

    使用LEFT OUTER JOIN建立查询结果

  4. 4

    使用COUNT和LEFT JOIN进行缓慢的MYSQL查询

  5. 5

    使用LEFT JOIN(SELECT)ORDER和LIMIT的MySQL查询

  6. 6

    使用WHERE子句的MySQL LEFT JOIN查询

  7. 7

    使用COUNT ON LEFT JOIN进行MySQL查询

  8. 8

    当使用Join且2个表的字段名称相同时,如何在MYSQL查询中查明正确的结果?

  9. 9

    MySQL LEFT JOIN无法使用多个表

  10. 10

    查询正确结果所需的主LEFT JOIN表上所有子表上的不必要LEFT JOIN

  11. 11

    使用 LEFT JOIN 查询 MongoDB

  12. 12

    如何从LEFT JOIN MySQL表调用结果

  13. 13

    如何使用主查询中的LEFT JOIN和子查询中的INNER JOIN优化MySQL SELECT查询?

  14. 14

    使用COALESCE和LEFT OUTER JOIN的SQL查询

  15. 15

    使用Laravel查询构建器和LEFT JOIN删除行

  16. 16

    使用COALESCE和LEFT OUTER JOIN的SQL查询

  17. 17

    (My)使用MAX和LEFT JOIN的SQL查询

  18. 18

    使用Laravel查询构建器和LEFT JOIN删除行

  19. 19

    MySQL-如何改善使用多个LEFT JOIN的复杂查询

  20. 20

    MySQL查询-如何获取具有GROUP BY和WHERE条件的SUM并使用LEFT OUTER JOIN?

  21. 21

    MySQL LEFT OUTER JOIN没有给出正确的结果

  22. 22

    MYSQL搜索查询使用降序限制1和使用left

  23. 23

    使用LEFT JOIN和UNION合并多个表

  24. 24

    使用子查询语法的LEFT OUTER JOIN

  25. 25

    如何使用SQL LEFT JOIN查询

  26. 26

    如何使用SQL LEFT JOIN查询

  27. 27

    使用 LEFT JOIN 进行慢速 SQL 查询

  28. 28

    使用 Left Join 的 SQL 查询中的问题

  29. 29

    表的GROUP BY在使用LEFT JOIN的MySQL中返回错误计数

热门标签

归档