1-Wire 温度センサーと「LogTemp」という Windows アプリケーションを使用して温度値を記録しています。
このアプリケーションは、MySQL データベースに温度値を自動的に保存します。
これは温度ログ データベースです。
mysql> show columns from logtemp;
+------------------+----------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+----------+------+-----+---------------------+-------+
| DATETIME | datetime | NO | PRI | 0000-00-00 00:00:00 | |
| 0400080224D59710 | float | YES | | NULL | |
| CA00080224DDD010 | float | YES | | NULL | |
| 5600080224E7FE10 | float | YES | | NULL | |
| 0500080224D40B10 | float | YES | | NULL | |
+------------------+----------+------+-----+---------------------+-------+
内容は次のようになります。
mysql> select * from logtemp limit 10;
+---------------------+------------------+------------------+------------------+------------------+
| DATETIME | 0400080224D59710 | CA00080224DDD010 | 5600080224E7FE10 | 0500080224D40B10 |
+---------------------+------------------+------------------+------------------+------------------+
| 2013-11-01 12:58:01 | 25.75 | 24.19 | 24.31 | 24.44 |
| 2013-11-01 12:59:03 | 25.81 | 24.19 | 24.31 | 24.44 |
| 2013-11-01 13:00:05 | 25.94 | 24.25 | 24.38 | 24.44 |
| 2013-11-01 13:01:07 | 25.94 | 24.25 | 24.38 | 24.44 |
| 2013-11-01 13:02:08 | 25.94 | 24.31 | 24.38 | 24.5 |
| 2013-11-01 13:03:10 | 26.06 | 24.31 | 24.38 | 24.5 |
| 2013-11-01 13:04:11 | 26.19 | 24.31 | 24.44 | 24.56 |
| 2013-11-01 13:05:13 | 26.31 | 24.31 | 24.44 | 24.56 |
| 2013-11-01 13:06:14 | 26.38 | 24.31 | 24.44 | 24.56 |
| 2013-11-01 13:07:16 | 26.38 | 24.31 | 24.44 | 24.56 |
+---------------------+------------------+------------------+------------------+------------------+
列名 (0400080224D59710 など) は、温度センサーの一意の ROM ID です。新しいセンサーが接続されると、DB に追加の列が作成され、センサーの ROM ID が列名になります。
ここで、次のような別のテーブルを追加しました。
mysql> show columns from sensoren;
+--------------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+--------------+------+-----+---------+-------+
| strSensorHex | varchar(16) | NO | PRI | NULL | |
| strSensorBeschreibung | varchar(100) | NO | MUL | NULL | |
| strSensorRRDTabellenName | varchar(25) | NO | | NULL | |
+--------------------------+--------------+------+-----+---------+-------+
この表の内容は次のとおりです。
mysql> select * from sensoren;
+------------------+-----------------------+--------------------------+
| strSensorHex | strSensorBeschreibung | strSensorRRDTabellenName |
+------------------+-----------------------+--------------------------+
| 0400080224D59710 | Testsensor 1 | TEST1 |
| CA00080224DDD010 | Testsensor 2 | TEST2 |
| 5600080224E7FE10 | Testsensor 3 | TEST3 |
| 0500080224D40B10 | Testsensor 4 | TEST4 |
+------------------+-----------------------+--------------------------+
このstrSensorHex
列には、温度センサーの一意の ROM ID が含まれています。
ここで、次の情報を含む新しいビューを作成したいと思います。
DATETIME, strSensorHex, strSensorBeschreibung, Temperatur value
これを実現する方法については、すでにグーグルで検索しようとしましたが、まだ答えを見つけることができず、SQL構文にあまり慣れていません:-(