https://s2.ax1x.com/2019/09/17/n5qvKx.png (顺便请教下如何发图,找到的发图帖子,教程图片失效了)
我想查询同个 area 下,freight_1,freight_2,freight_3 各自的最小值及其 id。 3 条 sql 去获取很简单,但这个查询本身包含在 foreach 内(循环最大不超过 5 次),所以我想一条 sql 就查出,有这种办法吗?
![]() | 1 F281M6Dh8DXpD1g2 2019-09-17 18:33:34 +08:00 最小值好办,用 mysql 没办法一条获取到 id,gg |
![]() | 2 sytnishizuiai OP @liprais 嗯 但是分 3 条拿的话,就是 5*3,一共 15 条 sql 了,有点多 |
3 l00t 2019-09-17 18:37:00 +08:00 ![]() 就算是三条 sql,用 union all 拼一下也就是一条了,这也叫个事? |
![]() | 4 JunoNin 2019-09-17 18:42:54 +08:00 via Android 取三个字段里各自的最小值一条 SQL 没办法,发图可以用图床上传链接 |
![]() | 5 sytnishizuiai OP @l00t 谢谢,没想到这方法 |
![]() | 6 sytnishizuiai OP @JunoNin 我用的图传,不知道怎么上传。。。 |
7 okhowang 2019-09-17 19:18:10 +08:00 ![]() select id,area,freght1 from table1 where freight_1 = (select min(freight_1) from table1 table2 where table2.area = table1.area) x3 这样只用 3 条 union 可以拿到 但程序还得处理才能知道哪些列是最小的 如果不需要处理 直接 union 也可以 |
![]() | 8 sytnishizuiai OP 我直接 order by freight_1 limint 1 union all *3,代码更少点 |