2012-03-27 123 views
0

我使用durpal 6.在檢索數據我得到了以下的輸出:精煉MySQL查詢結果的結果

| nid | fid | 
------------ 
| 10 | 49 | 
| 10 | 57 | 
| 10 | 76 | 
| 14 | 34 | 
| 14 | 45 | 
| 14 | 95 | 
| 18 | 57 | 
| 18 | 65 | 
| 18 | 75 | 
| 19 | 56 | 
| 19 | 45 | 
| 19 | 75 | 

現在我想提煉這樣

| nid | fid1 | fid2 | fid3 | 
---------------------------- 
10 | 49 | 57 | 76 | 
14 | 34 | 45 | 95 | 
18 | 57 | 65 | 75 | 
19 | 56 | 45 | 75 | 

上述輸出請建議的SQL查詢..

+0

你不想要那種SQL。你想在PHP中創建輸出。 – Tomalak 2012-03-27 12:34:17

+0

第二個例子的結果從哪裏來?你不能幻想創建沒有任何輸入的列。 – Manuel 2012-03-27 12:34:59

回答

1

你應該更好地解釋你正在嘗試做什麼。您可以使用GROUP_CONCAT()將逗號分隔爲逗號分隔列表。

SELECT nid, GROUP_CONCAT(fid) 
FROM tbl 
GROUP BY nid 
+0

非常感謝... – 2012-03-27 12:43:05

+0

在這裏,我們通過接受答案說謝謝。只需點擊您想接受的答案旁邊的勾號即可。 – nnichols 2012-03-27 12:45:54

0

如果你有一個2列表,你不能得到4列,但你可以過濾你的結果。

SELECT * FROM yourtable WHERE nid = "10"; 

那麼你有:

| nid | fid |

| 10 | 49 |
| 10 | 57 |
| 10 | 76 |

這樣你就可以根據需要在程序中轉換它。

0

你可以連接字符串,並在PHP中將其分解爲數組。事情是這樣的:

SELECT nid, GROUP_CONCAT(fid SEPARATOR '|') FROM table GROUP BY id; 

和PHP通過|

0

爆炸fid在SQL

SELECT nid, GROUP_CONCAT(fid) fids 
FROM tbl 
GROUP BY nid 

將使得像

nid | fids 
10 | 49,57,76 
11 | 34,45,95 

顯示,你可以使用PHP格式化您期望的輸出