2016-03-28 66 views
1
SELECT * 
FROM `fc_product` AS a, 
(SELECT MIN(`views`) AS mini, MAX(`views`) AS maxi 
FROM `fc_product`) AS m 
WHERE a.views > 0 

我寫了這個查詢。我在此查詢的錯誤,當我寫這篇聲明MYSQL子句錯誤

"(SELECT MIN(`views`) AS mini, MAX(`views`) AS maxi FROM `fc_product`) " 
+0

而什麼是錯誤信息? –

+0

您無法將兩個不同的列轉換爲單個列。您需要使用聚合函數或任何字符串操作 –

+0

查詢中沒有錯誤:http://sqlfiddle.com/#!9/50e70/1 - 它的另一個問題是否您需要 –

回答

0

在查詢其實正確的語法將按照如下─

SELECT *, 
(SELECT MIN(`views`) AS mini, MAX(`views`) AS maxi 
FROM `fc_product`) AS m 
FROM `fc_product` AS a 
WHERE a.views > 0 

但是你可以用下面的相同的結果,沒有必要簡單查詢子查詢這裏 -

SELECT a.*, MIN(`views`) AS mini, MAX(`views`) AS maxi 
FROM `fc_product` AS a 
WHERE a.views > 0 

注:以上兩種查詢將產生單排的結果,如果你需要分的基礎上,一些外地最大值則需要通過在該領域的使用羣體。

1

希望這有助於 我認爲它不會允許有一個子查詢 這裏裏面兩列的結果是我的代碼

SELECT a.*, 
(SELECT MIN(views) FROM fc_product) as mini, 
(SELECT MAX(views) FROM fc_product) as maxi 
FROM fc_product a WHERE a.views>0 

或試試這個:

select * from 
(select * from fc_product WHERE views>0) t1, 
(SELECT MIN(views) as mini,MAX(views) as maxi FROM fc_product) t2