2017-04-24 95 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