select * from tsoid;
+------+-------+
| soid | cus |
+------+-------+
| 1001 | Gavin |
| 1002 | aduan |
| 1003 | LH |
+------+-------+
select * from order1;
+----------+-----------+
| orderNo | soid |
+----------+-----------+
| 20090513 | 1002/1003 |
| 20090514 | 1001 |
+----------+-----------+
怎么获得如下结果:
orderNo soid cus
20090513 1002/1003 aduan/LH
20090514 1001 Gavin
最好用mysql实现
+------+-------+
| soid | cus |
+------+-------+
| 1001 | Gavin |
| 1002 | aduan |
| 1003 | LH |
+------+-------+
select * from order1;
+----------+-----------+
| orderNo | soid |
+----------+-----------+
| 20090513 | 1002/1003 |
| 20090514 | 1001 |
+----------+-----------+
怎么获得如下结果:
orderNo soid cus
20090513 1002/1003 aduan/LH
20090514 1001 Gavin
最好用mysql实现
mysql> select a.orderNo,2.soid,group_concat(cus separator '/') from order1 a lef
t join tsoid b on find_in_set(b.soid,replace(a.soid,"/",",")) group by orderNo;
+----------+------+---------------------------------+
| orderNo | soid | group_concat(cus separator '/') |
+----------+------+---------------------------------+
| 20090513 | 1002/1003 | aduan/LH |
| 20090514 | 1001 | Gavin |
+----------+------+---------------------------------+
2 rows in set (0.00 sec)
mysql> select a.orderNo,a.soid,group_concat(cus separator '/') from order1 a lef
t join tsoid b on find_in_set(b.soid,replace(a.soid,"/",",")) group by orderNo;
+----------+------+---------------------------------+
| orderNo | soid | group_concat(cus separator '/') |
+----------+------+---------------------------------+
| 20090513 | 1002/1003 | aduan/LH |
| 20090514 | 1001 | Gavin |
+----------+------+---------------------------------+
2 rows in set (0.00 sec)
from order1 o ,tsoid t
where FIND_IN_SET(t.soid,REPLACE(o.soid,'/',',') )
group by o.orderNo,o.soid
十分感谢。。
http://dev.mysql.com/doc/refman/5.1/zh/functions.html
第12章:函数和操作符
group by a.orderNo,a.soid