一句group by可以解决这个查询吗

小柳 2012-10-19 04:04:58
字段 a b c
1 2 3
2 3 2
2 1 5
5 3 4
3 5 3
3 4 7
4 3 6
查询出
1、a或b字段 包括3的
2、a和b的组合只选择一条c值最大的

最后想得到的就是,
2 3 2
5 3 4
3 4 7
表述的不太好,希望能看懂的帮忙解答一下

...全文
224 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小柳 2012-10-19
  • 打赏
  • 举报
回复
小柳 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

可以是可以的……

SQL code

SELECT a, b, MAX( c ) AS c
FROM (
SELECT 1 a, 2 b, 3 c
UNION ALL SELECT 2 , 3, 2
UNION ALL SELECT 2 , 1, 5
UNION ALL SELECT 5 , 3, 4
UNION ALL SELECT 3 , 5, 3
UNION ALL SELECT ……
[/Quote]
将军真乃神人也,其实我最想要的就是group by 后面的if语句和concat
amani11 2012-10-19
  • 打赏
  • 举报
回复
不好意思,语句不对


可以按c排序后 group by……
amani11 2012-10-19
  • 打赏
  • 举报
回复
可以是可以的……


SELECT a, b, MAX( c ) AS c
FROM (
SELECT 1 a, 2 b, 3 c
UNION ALL SELECT 2 , 3, 2
UNION ALL SELECT 2 , 1, 5
UNION ALL SELECT 5 , 3, 4
UNION ALL SELECT 3 , 5, 3
UNION ALL SELECT 3 , 4, 7
UNION ALL SELECT 4 , 3, 6
)t
WHERE t.a =3
OR t.b =3
GROUP BY (
IF( t.a < t.b, CONCAT( t.a, ',', t.b ) , CONCAT( t.b, ',', t.a ) )
)

执行结果
a b c
2 3 2
3 4 7
5 3 4
yunprince 2012-10-19
  • 打赏
  • 举报
回复
估计一条sql语句不好搞定吧,你先把1得到一个数组,然后对数据进行php判断算了
小柳 2012-10-19
  • 打赏
  • 举报
回复
[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/3.gif]123[/img]
小柳 2012-10-19
  • 打赏
  • 举报
回复

20,394

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧