mysql 多表查询 比较两个字段最大、最小值,并显示对应字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 多表查询 比较两个字段最大、最小值,并显示对应字段相关的知识,希望对你有一定的参考价值。

有两个表,表A和表B,结构相同,但是具体字段不同,在表A.date = B.date条件下,查询出以下结果:MAX(A.ticker_buy-B.ticker_sell) 和MIN(A.ticker_buy-B.ticker_sell) ,即同一时间下两个表不同字段的差值的最大值和最小值,并显示对应最大值、最小值对应的date字段,我尝试用sql语句写了下,但是结果不对(用excel大致比较过)。我的语句如下:
select max(okcomfuturetickerquarter.ticker_buy-okcomfuturetickernextweek.ticker_sell) as "最大差价",min(okcomfuturetickerquarter.ticker_buy-okcomfuturetickernextweek.ticker_sell) as "最小差价",okcomfuturetickerquarter.date as "时间" from okcomfuturetickerquarter,okcomfuturetickernextweek where okcomfuturetickerquarter.date=okcomfuturetickernextweek.date and okcomfuturetickerquarter.ticker_buy is not null and okcomfuturetickernextweek.ticker_sell is not null ,请各位大神帮助,写出正确语句。

参考技术A : select max(date) from ( select max(date) date from A unoin all select max(date) date from B ) a追问

你好,您的sql我没有看明白,我要查的是两个表A.ticker_buy-B.ticker_sell差的最大值和最小值,对应显示相应的date字段,还请您明示。

mysql 中如何拿到每条数据最大值和最小值

参考技术A 两种方法:
1、
取排序最大值:
select * from order by time DESC LIMIT 0,1;
取排序最小值:
select * from user order by time ASC LIMIT 0,1;

2、借助PHP内置函数(看情况是否适合你的查询)
取排序最大值:
select MAX(字段)from user;
取排序最小值:
select MIN(字段)from user ;
延伸 limit的用法:
mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15
5代表从第几个开始取,从0开始计数;10代表取几个记录;
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
//如果只给定一个参数,它表示返回最大的记录行数目:
mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行
//换句话说,LIMIT n 等价于 LIMIT 0,n。

以上是关于mysql 多表查询 比较两个字段最大、最小值,并显示对应字段的主要内容,如果未能解决你的问题,请参考以下文章

mysql多表查询

sql中怎么比较两个列中的最小值

mysql按时间段取和 并找出最大值

MySQL连接查询(多表查询)

mysql多表查询,相同字段怎样分别显示

mysql 查询最大最小值和对应的时间