Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在内部联接中选择并计数_Mysql_Sql_Request - Fatal编程技术网

Mysql 在内部联接中选择并计数

Mysql 在内部联接中选择并计数,mysql,sql,request,Mysql,Sql,Request,我尝试显示每个产品的图像数量。 但这里是请求返回我所有产品的图像数量 SELECT images, pl.*, l.iso_code, ps.price, cl.name as category_name FROM `ps_product_lang` pl INNER JOIN `ps_product` p ON (p.`id_product` = pl.`id_product`) INNER JOIN `ps_lang` l ON (pl.`id_lang` = l.`id_lang`) IN

我尝试显示每个产品的图像数量。 但这里是请求返回我所有产品的图像数量

SELECT images, pl.*, l.iso_code, ps.price, cl.name as category_name
FROM `ps_product_lang` pl
INNER JOIN `ps_product` p ON (p.`id_product` = pl.`id_product`)
INNER JOIN `ps_lang` l ON (pl.`id_lang` = l.`id_lang`)
INNER JOIN `ps_product_shop` ps ON (ps.`id_product` = p.`id_product`)
INNER JOIN `ps_category_lang` cl ON (cl.`id_category` = p.`id_category_default`) and (cl.`id_lang` = pl.`id_lang`)
 
INNER JOIN (SELECT id_image, id_product, COUNT(id_image) AS images
FROM `ps_image`) i ON (i.`id_product` = p.id_product)
 
WHERE p.active = 1 AND cl.id_shop = 1
ORDER BY pl.name ASC
LIMIT 10 OFFSET 0
在这条线上

INNER JOIN (SELECT id_image, id_product, COUNT(id_image) AS images
FROM `ps_image`) i ON (i.`id_product` = p.id_product)
编码sql
此查询的格式不正确:

(SELECT id_image, id_product, COUNT(id_image) AS images
 FROM ps_image
) 
这是错误的SQL,应该被拒绝并出现语法错误。幸运的是,MySQL现在使用默认设置实现了这一点

有什么问题?由于
COUNT()
的原因,您有一个聚合查询。没有分组依据,因此查询只返回一行。但这些行也有“裸”列。这是一个SQL语法错误,几乎在所有数据库中都是一个错误

您确实只希望按一列进行聚合。这应该是唯一一个没有聚合功能的列select,并且它应该位于
组BY

(SELECT id_product, COUNT(id_image) AS images
 FROM ps_image
 GROUP BY id_product
) 

另外,您可能需要的是
COUNT(*)
,而不是
COUNT(x)