一个mysql表的结构是这样的
+----+-----+
| id | fid |
+----+-----+
| 1 | NULL|
| 2 | NULL|
| 3 | 2 |
| 4 | 2 |
| 5 | 3 |
| 6 | 3 |
+----+-----+
现在要在这样的查询结果:
+----+------+
| id | 子id |
+----+------+
| 1 | NULL |
| 2 | 3,4 |
| 3 | 5,6 |
| 4 | NULL |
| 5 | NULL |
| 6 | NULL |
+----+------+
现在首先SELECT id FROM `table`
然后根据查询出来的结果中的id再查询SELECT * FROM `table` where fid=id
能把这两次查询合并吗?
我想到用join,但是尝试了几次都没得到想要的结果。特来请教,谢谢先
+----+-----+
| id | fid |
+----+-----+
| 1 | NULL|
| 2 | NULL|
| 3 | 2 |
| 4 | 2 |
| 5 | 3 |
| 6 | 3 |
+----+-----+
现在要在这样的查询结果:
+----+------+
| id | 子id |
+----+------+
| 1 | NULL |
| 2 | 3,4 |
| 3 | 5,6 |
| 4 | NULL |
| 5 | NULL |
| 6 | NULL |
+----+------+
现在首先SELECT id FROM `table`
然后根据查询出来的结果中的id再查询SELECT * FROM `table` where fid=id
能把这两次查询合并吗?
我想到用join,但是尝试了几次都没得到想要的结果。特来请教,谢谢先
当前问题共有如下(1)个解决方案
前者 select id后者是select *而后者其实里面也有id;所以如果合并了$resRow["id"]该是哪组数据呢?
合并是要么完全一致;要么完全不一致
前者用union就能解决,后者查两次(不用担心效率,差不多的);查完保存数组,一个
array_merge\array_push就搞一起了