SELECT *
FROM `fc_product` AS a,
(SELECT MIN(`views`) AS mini, MAX(`views`) AS maxi
FROM `fc_product`) AS m
WHERE a.views > 0
我写了这个查询。当我写这个语句时,我在这个查询中遇到了一个错误
"(SELECT MIN(`views`) AS mini, MAX(`views`) AS maxi FROM `fc_product`) "
希望这个帮助我认为不允许在一个子查询中包含两列结果这是我的代码
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
实际上查询中的正确语法如下-
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
备注:以上两个查询都会产生单行结果,如果您需要基于某个字段的最小值、最大值,则需要在该字段上使用分组依据。