2017-04-24 94 views
0

什么是正确的(MySQL的) - 为了获得最高和一张桌子,我得到这个最小的值查询,但这是错误的:SQL查询的最大和最小

SELECT * FROM temperaturs ASC LIMT 3 UNION SELECT * from temperaturs ORDER BY `Temperatur_Celsius` DESC LIMIT 3; 

这是错误的,太:

SELECT * FROM tabelle_name ORDER BY spalte1 DESC LIMIT k UNION SELECT * FROM tabelle_name ORDER BY spalte1 ASC LIMIT k 
+0

第一个SELECT没有ORDER BY。并做所有的联合。正确的限制拼写。 – jarlh

+1

为什么有问题? –

+0

你可以很容易地使用SQL查询的min()和max()函数为什么你需要所有的列 –

回答

2

您的查询只需要括号:

(SELECT * FROM temperaturs ORDER BY `Temperatur_Celsius` ASC LIMIT 3) 
UNION ALL 
(SELECT * from temperaturs ORDER BY `Temperatur_Celsius` DESC LIMIT 3); 

注:我从切换到UNIONUNION ALL。如果表格少于6行,这将允许多行。一般来说,UNION是一个不好的做法,因为它会导致删除重复的开销。

当子查询到UNION/UNION ALL使用ORDER BYLIMIT时,MySQL需要括号。

+0

在第一个SELECT中没有ORDER BY。 LIMIT拼写为LIMT。 – jarlh

+0

@jarlh。 。 。谢谢。 –

+0

工程很棒。谢谢! – tklustig