2016-03-28 6 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

異なる2つの列を1つの列に変換することはできません。この場合、集計関数または文字列演算を使用する必要があります –

+0

クエリにエラーはありません:http://sqlfiddle.com/#!9/50e70/1 - 必要なものがあれば別の質問 –

答えて

0

クエリで実際に右の構文は次のとおりとしてあたりbelow-

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

されますが、同じ結果が不要のため、単純なクエリの下に使用することができますサブクエリhere-

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

注意を:あなたが分が必要な場合は、上記の両方のクエリは、単一の行の結果が生成されます、いくつかのフィールドに基づいて、最大値は、そのフィールド上でグループを使用する必要があります。

1

・ホープこのヘルプ 私はここでその一つのサブクエリ内の2つの列の結果を持つことが許されていない は私のコード

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