https://s2.ax1x.com/2019/09/17/n5qvKx.png (顺便请教下如何发图,找到的发图帖子,教程图片失效了)
我想查询同个 area 下,freight_1,freight_2,freight_3 各自的最小值及其 id。 3 条 sql 去获取很简单,但这个查询本身包含在 foreach 内(循环最大不超过 5 次),所以我想一条 sql 就查出,有这种办法吗?
1
liprais 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 2
就算是三条 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 2
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,代码更少点
|