好了,所以我知道我可能會用於擴孔甚至暗示這樣的事情,但它有我好奇...MySQL:LEFT JOIN或UNION表,並將列值設置爲列名?
讓我們假設我有這樣一個表:
content
---------------
| id | status |
和像這樣的表:
attributes
---------------------------
| id | pid | name | value |
其中一些屬性可能是
| 1 | 1 | status | published |
| 2 | 1 | viable | yes |
是可以做查詢,以便名稱列中的屬性值將表示爲列名稱?
例子:
SELECT a.name AS {a.name value} FROM content c LEFT JOIN attributes a ON a.pid = c.id
所以,當我通過運行結果我可以做類似
foreach($result as $r){
echo $r->viable; //yes
echo $r->status; //published
}
我知道這不符合關係型數據庫福,但它是有用的我一些多餘的屬性。我想到的另一個選擇是將數據存儲爲一個序列化的字符串,但這讓我感到畏縮。
你知道所有的名字被用作提前列,或者是他們的動態? –
你所要求的稱爲「數據透視表」http://stackoverflow.com/search?q=mysql+pivot+table http://stackoverflow.com/search?q=%5Bmysql%5D+rows+到+列 –
他們是動態的,所以我沒有提前列出他們的清單。 –