mysql - 変数からのmysqlエイリアス名

原文 mysql alias literals

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 
関連記事

php - Laravelの特定のテーブルでユーザーが最後にログインしてからのデータベースエントリを見つけるにはどうすればよいですか?

mysql - 月ごとの月数の計算

mysql - NOT NULL TIMESTAMPのデフォルト値がありませんか?

mysql - ORMを介して行が作成されない場合、Djangoは外部キーに基づく行の削除に時間がかかる

php - ボタンのクリックでデータベースを更新するPHPの問題

php - codeigniterで2つのテーブルのデータメニューとサブメニューを取得する方法

mysql - 国別文字の列エラーにはデータが長すぎます

c# - 余分な空白を作成するSQLのVarchar

mysql - 角括弧内の任意の単語に一致するMYSQL正規表現

mysql - sparklyr spark_write_jdbcを使用してMySqlに接続する方法