MySQLでは複数の列と行に多くの列を変換します

Gnometa:

MySQLでの行に多くの列を変換する方法はありますか?

表は次のようになります。

+----+---------+-----------+-----------+-------------+-------------+-----------+-----------+
| id | style   | process_1 | process_2 | time_proc_1 | time_proc_2 | machine_1 | machine_2 |
+----+---------+-----------+-----------+-------------+-------------+-----------+-----------+
|  1 | WW102   | abcdefghi | jklmnopqr |      0.1    |      0.2    |   HF-101  |   HF-102  |
|  2 | 70AAG76 | abcdefghi | jklmnopqr |      0.1    |      0.2    |   HF-101  |   HF-102  |
|  3 | 37542851| jklmnopqr | stuvwxyz0 |      0.2    |      0.3    |   HF-102  |   HF-103  |
+----+---------+-----------+-----------+-------------+-------------+-----------+-----------+

既にこのクエリを使用しようと

SELECT style,'process_1' AS process, process_1 AS process_desc FROM process_table
UNION ALL
SELECT style,'process_2' AS process, process_2 AS process_desc FROM process_table
UNION ALL
SELECT style,'time_proc_1' AS time, time_proc_1 AS time_min FROM process_table
UNION ALL
SELECT style,'time_proc_2' AS time, time_proc_1 AS time_min FROM process_table
UNION ALL
SELECT style,'machine_1' AS machine, machine_1 AS machine_type FROM process_table
UNION ALL
SELECT style,'machine_2' AS machine, machine_2 AS machine_type FROM process_table
ORDER BY style

結果は次のとおりです。

+---------+-------------+-------------+
|  style  |  process    | process_desc|
+---------+-------------+-------------+
| WW102   | process_1   | abcdefghi   |
| WW102   | process_2   | jklmnopqr   |
| WW102   | time_proc_1 |    0.1      |
| WW102   | time_proc_2 |    0.2      |
| WW102   | machine_1   |   HF-101    |
| WW102   | machine_2   |   HF-102    |
| 70AAG76 | process_1   | abcdefghi   |
| 70AAG76 | process_2   | jklmnopqr   |
| 70AAG76 | time_proc_1 |    0.1      |
| 70AAG76 | time_proc_2 |    0.2      |
| 70AAG76 | machine_1   |   HF-101    |
| 70AAG76 | machine_2   |   HF-102    |
| 37542851| process_1   | jklmnopqr   |
| 37542851| process_2   | stuvwxyz0   |
| 37542851| time_proc_1 |    0.2      |
| 37542851| time_proc_2 |    0.3      |
| 37542851| machine_1   |   HF-102    |
| 37542851| machine_2   |   HF-103    |
+---------+-------------+-------------+

私が探していた結果は、次のようになります:

+---------+-----------+-----------+---------+
|  style  |  process  | time_proc | machine |
+---------+-----------+-----------+---------+
| WW102   | abcdefghi |    0.1    |  HF-101 |
| WW102   | jklmnopqr |    0.2    |  HF-102 |
| 70AAG76 | abcdefghi |    0.1    |  HF-101 |
| 70AAG76 | jklmnopqr |    0.2    |  HF-102 |
| 37542851| jklmnopqr |    0.2    |  HF-102 |
| 37542851| stuvwxyz0 |    0.3    |  HF-103 |
+---------+-----------+-----------+---------+

すべてのヘルプは非常に高く評価されたので、私は、MySQLで限られた知識を持っています。ありがとうございました

明菜:
SELECT style, process_1 process, time_proc_1 time_proc, machine_1 machine
FROM process_table
UNION ALL
SELECT style, process_2, time_proc_2, machine_2
FROM process_table

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=28058&siteId=1