精炼MySQL查询结果的结果
我使用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查询..
你应该更好地解释你正在尝试做什么。您可以使用GROUP_CONCAT()将逗号分隔为逗号分隔列表。
SELECT nid, GROUP_CONCAT(fid)
FROM tbl
GROUP BY nid
非常感谢... – 2012-03-27 12:43:05
在这里,我们通过接受答案说谢谢。只需点击您想接受的答案旁边的勾号即可。 – nnichols 2012-03-27 12:45:54
如果你有一个2列表,你不能得到4列,但你可以过滤你的结果。
SELECT * FROM yourtable WHERE nid = "10";
那么你有:
| nid | fid |
| 10 | 49 |
| 10 | 57 |
| 10 | 76 |
这样你就可以根据需要在程序中转换它。
你可以连接字符串,并在PHP中将其分解为数组。事情是这样的:
SELECT nid, GROUP_CONCAT(fid SEPARATOR '|') FROM table GROUP BY id;
和PHP通过|
爆炸fid
在SQL
SELECT nid, GROUP_CONCAT(fid) fids
FROM tbl
GROUP BY nid
将使得像
nid | fids
10 | 49,57,76
11 | 34,45,95
显示,你可以使用PHP格式化您期望的输出
你不想要那种SQL。你想在PHP中创建输出。 – Tomalak 2012-03-27 12:34:17
第二个例子的结果从哪里来?你不能幻想创建没有任何输入的列。 – Manuel 2012-03-27 12:34:59