请问一下,我这个5表联查的数据问题出现在哪,是要用子查询,先查id,再查整体数据吗,像测试2,测试5这种数据,处罚类型和违规类型为啥会重复一次啊
2条回答 默认 最新
关注 引用 皆我百晓生 小程序回复内容作答:
从你提供的SQL语句来看,问题出在以下部分:GROUP_CONCAT(pun.punid ORDER BY cp.punid SEPARATOR) AS punids, GROUP_CONCAT(pun.punname ORDER BY cp.punid SEPARATOR) AS punnames, GROUP_CONCAT(vio.vioid ORDER BY cv.vioid SEPARATOR) AS vioids, GROUP_CONCAT(vio.vioname ORDER BY cv.vioid SEPARATOR) AS vionames
你在这里使用了GROUP_CONCAT函数来将punid、punname、vioid、vioname连接为一个字符串,但是你没有指定每个表之间的关联条件。所以可能会导致重复显示。
解决办法是,在每个GROUP_CONCAT函数中使用DISTINCT关键字来去除重复值。修改后的代码如下:
GROUP_CONCAT(DISTINCT pun.punid ORDER BY cp.punid SEPARATOR) AS punids, GROUP_CONCAT(DISTINCT pun.punname ORDER BY cp.punid SEPARATOR) AS punnames, GROUP_CONCAT(DISTINCT vio.vioid ORDER BY cv.vioid SEPARATOR) AS vioids, GROUP_CONCAT(DISTINCT vio.vioname ORDER BY cv.vioid SEPARATOR) AS vionames
这样就可以确保每个联表查询结果中的重复值被去除了。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥25 自动填写QQ腾讯文档收集表
- ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
- ¥15 求一份STM32F10X的I2S外设库
- ¥15 android 打包报错
- ¥15 关于stm32的问题
- ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?
- ¥50 寻找fpga的benchmark
- ¥50 如何在arduino上,实现用4×4矩阵键盘按键控制2004显示屏输出图中显示功能的代码?
- ¥15 P1口接8个发光二极管,利用定时计数器1编写程序
- ¥20 keil5编译找不到.h文件该如何解决