2016-07-31 100 views

回答

1

假设您想要检索中的最小值和最大值两个单独的行

SELECT your_column FROM your_table 
    JOIN 
    (SELECT 
     min(your_column) AS min_v, 
     max(your_column) AS max_v FROM your_table 
    ) minmax 
    WHERE your_column IN(minmax.min_v,minmax.max_v); 
+1

中添加了谢谢。这工作正常 – mallikarjun

+0

@mathguy join_condition是在MySQL下的内部连接的可选。请参阅https://dev.mysql.com/doc/refman/5.7/en/join.html – pah

+0

@mathguy在mysql下的无资格JOIN被解释为INNER JOIN(因此答案查询下的JOIN默认被限定为INNER) 。此外,关于你对INNER JOINS的关注,如果你按照我提供的文档,你可以阅读'在MySQL中,JOIN,CROSS JOIN和INNER JOIN是语法等价物(它们可以互相替换)。在标准的SQL中,它们不是等价的。 INNER JOIN与ON子句一起使用,否则使用CROSS JOIN.'。 – pah

0
SELECT min(field) as minValue, max(field) as maxValue FROM yourTable 

这里假定最小/最大值是基于数据库默认值的,没有什么更复杂的。

1

如果您需要两排你CA使用union

select min(my_column) 
from my_table 
union 
select max(my_column) 
from my_table 

或UNION ALL用于避免只返回不同的值

select min(my_column) 
from my_table 
union all 
select max(my_column) 
from my_table 

,如果你需要在一排,你可以

select min(my_column), max(my_column) from my_table; 
+0

这比接受的答案要好,因为它不需要额外的连接。但它应该使用* union all *而不是* union *,因为union只返回不同的值 –

+0

@ HAL9000 right ..在答案 – scaisEdge