我正在使用drupal 6.在检索数据时,我得到了以下输出:
| 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 :(得分:1)
你应该更好地解释你想要做什么。您可以使用GROUP_CONCAT()以逗号分隔列表的形式返回fids。
SELECT nid, GROUP_CONCAT(fid)
FROM tbl
GROUP BY nid
答案 1 :(得分:0)
如果您有2个列表,则无法获得4个列,但您可以过滤c的结果。
SELECT * FROM yourtable WHERE nid = "10";
然后你得到了:
| nid | fid |
| 10 | 49 |
| 10 | 57 |
| 10 | 76 |
这样你就可以根据需要在你的程序中进行转换。
答案 2 :(得分:0)
你可以连接字符串并在php中将它爆炸成数组。像这样:
SELECT nid, GROUP_CONCAT( fid SEPARATOR '|') FROM table GROUP BY id;
并在PHP中fid
|
答案 3 :(得分:0)
在sql中
SELECT nid, GROUP_CONCAT(fid) fids
FROM tbl
GROUP BY nid
将显示
nid | fids
10 | 49,57,76
11 | 34,45,95
您可以使用PHP格式化为所需的输出