sql 多表查询如何去重

两个查询得到的结果集如何合并并且不重复图片为两个分开查询得到的结果 如果通过FNUMBE连接查询则会产生重复的数据

select ç»“果集1 
union
select ç»“果集2

如果单纯怕两个结果集重复,用union连接即可,但是你一个叫销售XX,一个叫采购XX不影响吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-19
查询结果一对多,使用连接查询、左边相同数据,右边不一样的数据,查询出来一条纪录是映射一个对象,你可以使用 GROUP_CONCAT() 分组连接函数,将你写的连接查询语句使用子查询方式放进去。代码例子:三表查询
SELECT s.*,GROUP_CONCAT(s.ur_nickname,s.ur_avatarurl) userData FROM
(SELECT at_id,at_uid,at_title,at_status,at_max_count,at_creation,at_content,at_sign_count,ur_nickname,ur_avatarurl FROM activity
LEFT JOIN activity_join_in ON at_id = ji_at_id LEFT JOIN USER ON ji_uid=ur_id) s
WHERE s.at_uid = 7 GROUP BY at_id
方法二,如果你的表左右俩张表都是有对应关系,且有数据,不为 null. 你可以使用 sql 92 语法:
SELECT
at_id,
at_title,
GROUP_CONCAT(`user`.ur_nickname)
FROM
activity,
activity_join_in,
`user`
WHERE
at_uid = 7
AND activity.at_id=activity_join_in.ji_at_id
AND activity_join_in.ji_uid = `user`.ur_id
注意:
roup_concat默认是把所有结果表述成一行,使用group by 分组函数进行分租。
相似回答