[英]Query left join fetch data problem - Mysql
我用左连接连接了两个表。 当我用 Select 全选时,所有行都来了 (query1)。 但是当我用 select 拉一些行时,我只加载了一个数据,而不是加载了图 1 中的所有数据。 是什么原因?
加载所有数据查询1
查询1:
SELECT *
FROM oc_review AS OYLAMA
JOIN oc_product AS PRODUCT
ON (PRODUCT.product_id = OYLAMA.product_id)
INNER JOIN oc_product_to_category AS KATEGORI
ON (KATEGORI.product_id = PRODUCT.product_id)
WHERE KATEGORI.category_id = 69
仅加载 1 个数据查询 2
查询2:
SELECT
AVG(ALL OYLAMA.rating) AS ORTALAMA,
COUNT(OYLAMA.rating) AS TOPLAMOY
FROM oc_review AS OYLAMA
JOIN oc_product AS PRODUCT
ON (PRODUCT.product_id = OYLAMA.product_id)
INNER JOIN oc_product_to_category AS KATEGORI
ON (KATEGORI.product_id = PRODUCT.product_id)
WHERE KATEGORI.category_id = 69
一旦您引入诸如AVG()
和COUNT()
类的聚合函数,MySQL 就会创建一个单独的组,其中所有记录都放在其中。 另请参阅没有 GROUP BY 子句的 MySQL 聚合函数问题以获取更多信息。
您可能想要做的是明确指定一个GROUP BY
子句并将您在GROUP BY
之后的字段添加到SELECT
例如:
SELECT
PRODUCT.product_id,
AVG(ALL OYLAMA.rating) AS ORTALAMA,
COUNT(OYLAMA.rating) AS TOPLAMOY
FROM oc_review AS OYLAMA
JOIN oc_product AS PRODUCT
ON(PRODUCT.product_id = OYLAMA.product_id)
INNER JOIN oc_product_to_category AS KATEGORI
ON (KATEGORI.product_id = PRODUCT.product_id)
WHERE KATEGORI.category_id = 69
GROUP BY PRODUCT.product_id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.