mysql版本为5.0以上,支持存储过程表结构如下
用户表
ID LoginID
1 admin1
2 admin2职位表
ID Post UserID
1 经理 1
2 职员 2证件表
ID 字段 UserID
1 A 1
2 B 1
3 C 1
4 A 2
5 B 2大概的表结构是这样的,具体应用中的比这个要复杂一些现在我用GROUP_CONCAT查询后的结果为
LoginID Post 字段
admin1 经理,经理,经理 A,B,C
admin2 职员,职员 A,B
如何可以查询出来的结果是
LoginID Post 字段
admin1 经理 A,B,C
admin2 职员 A,B具体应用中大概要有5,6张这样的类别表
用户表
ID LoginID
1 admin1
2 admin2职位表
ID Post UserID
1 经理 1
2 职员 2证件表
ID 字段 UserID
1 A 1
2 B 1
3 C 1
4 A 2
5 B 2大概的表结构是这样的,具体应用中的比这个要复杂一些现在我用GROUP_CONCAT查询后的结果为
LoginID Post 字段
admin1 经理,经理,经理 A,B,C
admin2 职员,职员 A,B
如何可以查询出来的结果是
LoginID Post 字段
admin1 经理 A,B,C
admin2 职员 A,B具体应用中大概要有5,6张这样的类别表
这样呢
FROM 用户表 A INNER JOIN 证件表 B ON A.ID=B.UserID
LEFT JOIN 职位表 C ON B.UserID=C.UserID
GROUP BY A.LoginID
FROM 用户表 A INNER JOIN 证件表 B ON A.ID=B.UserID
inner JOIN 职位表 C ON B.UserID=C.UserID
GROUP BY A.LoginID在后面加INNER JOIN 你的类别表,GROU_CONCAT(字段名)即可,如果不确定,
考虑用字符串累加生成SQL语句的方法
from 用户表 ,职位表 ,证件表
where 用户表.ID=职位表.UserID
and 用户表.ID=证件表.UserID
group by 用户表.LoginID
而且还是最多的有几个其他的就有几个
SELECT A.LoginID,GROUP_CONCAT(B.字段),GROUP_CONCAT(C.Post)
FROM 用户表 A LEFT JOIN 证件表 B ON A.ID=B.UserID
LEFT JOIN 职位表 C ON B.UserID=C.UserID
GROUP BY A.LoginID
原来group_concat可以用distinct去重,十分感谢。也感谢其他两位版主的支持!