我有表documents
表keywords
。每個文檔可以有任意數量的關鍵字。我怎樣才能'按'非標準化列?和複合訂單
關鍵字例子:
Client Name
, Billing period
, Client Address
等
必須注意的是,文件可以對任何關鍵字,所以它不能被歸一化(它只是元數據)。
現在我想訂購,例如,Client Name
,然後Billing Period
,我該怎麼辦?
如果我讓Select * from Keywords group by keyword order by value
我沒有得到我所需要的。我沒有太多的MySQL經驗,所以我不能做更多。
實例與測試數據:
+-------+-------------+----------------------+----------------------+
| id | document_id | keyword | value |
+-------+-------------+----------------------+----------------------+
| 265 | 89 | Nº de Operacion | 000534556315 |
| 15708 | 5234 | Direccion IP | 192.168.100.168 |
| 267 | 89 | Fecha | 20131021 |
| 15760 | 5240 | Nombre de Cliente | CLIENTEN1 |
| 15761 | 5240 | Asunto | DEMANDACESTADO1220 |
| 15703 | 5234 | | DEMANDACESTADO1220 |
| 15700 | 5234 | Nombre de Legajo | Documento |
| 15702 | 5234 | Nombre del Documento | Documento |
| 15701 | 5234 | Tipo de Documento | Documento |
| 15842 | 5256 | Descripcion | ffff |
| 15709 | 5234 | Localizacion | No definida |
| 15707 | 5234 | Grupo Usuario | Operadores |
| 266 | 89 | Socio | Socio1 |
| 15835 | 5255 | Decripcion | sadsdf |
| 15704 | 5234 | ID de Usuario | ssadmin |
| 15706 | 5234 | Nombre de Usuario | ssadmin |
+-------+-------------+----------------------+----------------------+
表
mysql> describe documents;
+---------+-----------+------+-----+---------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-----------+------+-----+---------------------+-----------------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | char(100) | YES | | NULL | |
| wfid | char(50) | YES | | NULL | |
| docid | char(50) | YES | | NULL | |
| created | timestamp | NO | | 0000-00-00 00:00:00 | |
| updated | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+---------+-----------+------+-----+---------------------+-----------------------------+
6 rows in set (0.00 sec)
mysql> describe keywords;
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| document_id | int(11) | NO | MUL | NULL | |
| keyword | char(50) | NO | | NULL | |
| value | varchar(250) | YES | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
對於您顯示的查詢,您會得到什麼? '通過關鍵字按值排序,從關鍵字組中選擇*。如果你把它完全寫在你的問題上會更好。 –
據我所知OP是要求動態排序的值(來自keywords.keyword) – jean
您的結構是衆所周知的EAV。在絕大多數關係數據庫的情況下,這是不好的選擇。我已經描述過[這裏]的原因(http://stackoverflow.com/a/20783125/2637490)。 –