2016-07-31 104 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