2つのテーブルがあります。
表1:
ID Measurement_Name
1 Temperature
2 Humidity
表2:
DateTime * ID * Value
2017-10-20 15:52:00 * 1 * 22,3
2017-10-20 15:51:00 * 1 * 22,1
2017-10-20 15:50:00 * 2 * 45
2017-10-20 14:52:00 * 1 * 22,3
次に、表2から値を選択します。
select DateTime , Value as 'temperature'
from Table 2
where ID = 1;
結果:
DateTime * temperature
2017-10-20 15:52:00 * 22,3
2017-10-20 15:51:00 * 22,1
2017-10-20 14:52:00 * 22,3
それはうまくいきます。しかし、私はリテラル「温度」の場所に表1のテキスト「温度」を入れたいと思います。
次のようなものが欲しい
set @col_name := select Measurement_name from Table1 where ID = 1;`
私はこれを達成しました:
set @statement := CONCAT("select DateTime , Value as '",@col_name,"' from Table2 where ID = 1");
Prepare statement from @statement;
execute statement;`
しかし、私は好みます:
select DateTime , Value as @col_name
from Table2
where ID = 1;
しかし、これはエラーを生成します(サーバーが私に伝えているだけで、クエリの近くにエラーがあります。
JOINはどうですか?
SELECT t1.*, t2,*, CONCAT(t1.Measurement_Name,t2.value)
FROM Table1 t1
JOIN Table2 t2
ON t1.ID = t2.ID
WHERE t1.ID = 1