我有一個表格,格式如下。創建一個查詢的摘要結果
mysql> describe unit_characteristics;
+----------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| uut_id | int(10) unsigned | NO | PRI | NULL | |
| uut_sn | varchar(45) | NO | | NULL | |
| characteristic_name | varchar(80) | NO | PRI | NULL | |
| characteristic_value | text | NO | | NULL | |
| creation_time | datetime | NO | | NULL | |
| last_modified_time | datetime | NO | | NULL | |
+----------------------+------------------+------+-----+---------+----------------+
每個uut_sn都有多個特性名/值對。我想用MySQL來生成表格
+----------------------+-------------+-------------+-------------+--------------+
| uut_sn | char_name_1 | char_name_2 | char_name_3 | char_name_4 | ... |
+----------------------+-------------+-------------+-------------+--------------+
| 00000 | char_val_1 | char_val_2 | char_val_3 | char_val_4 | ... |
| 00001 | char_val_1 | char_val_2 | char_val_3 | char_val_4 | ... |
| 00002 | char_val_1 | char_val_2 | char_val_3 | char_val_4 | ... |
| ..... | char_val_1 | char_val_2 | char_val_3 | char_val_4 | ... |
+----------------------+------------------+------+-----+---------+--------------+
這是可能的只有一個查詢?
感謝, -Peter
+1 Nitpick:'null'是沒有'when'匹配時的默認值,所以你可以省略'else null' – Andomar 2010-08-18 18:30:57
+1來提及動態sql。 – 2010-08-18 19:04:27
感謝您的答案。解決方案和解釋都很好。我不得不選擇@OMG小馬更好地回答我不熟悉表樞軸。 @Bill,我對EAV反模式不熟悉,所以我用Google搜索了一些術語,並且似乎有很多關於這個主題的幻燈片,有沒有帶有音頻的版本?看起來你反對EAV,但是當有很多名稱/值對時會發生什麼?如果有超過200個名稱/值對,將它們翻譯爲列是否有意義? – cfpete 2010-08-18 20:36:08