Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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 - Fatal编程技术网

查询左连接获取数据问题-Mysql

查询左连接获取数据问题-Mysql,mysql,sql,Mysql,Sql,我用左键连接两个表。当我使用select选择全部时,所有行都会出现(查询1)。但当我使用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

我用左键连接两个表。当我使用select选择全部时,所有行都会出现(查询1)。但当我使用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
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
仅加载1个数据查询2

查询2:

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
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

MySQL创建了一个单独的组,在该组中,只要引入聚合函数(如
AVG()
COUNT()
),所有记录都会被放入其中。有关更多信息,请参见问题

您可能需要明确指定一个
GROUP BY
子句,并将
GROUP BY
之后的字段也添加到
SELECT
中,例如:

选择
PRODUCT.PRODUCT\u id,
奥塔拉马的平均值(所有奥亚拉马评级),
将(OYLAMA.评级)计算为TOPLAMOY
来自OYLAMA的oc_审查
作为产品加入oc_产品
ON(PRODUCT.PRODUCT\u id=OYLAMA.PRODUCT\u id)
内部将oc_产品_作为KATEGORI加入_类别
ON(KATEGORI.product\u id=product.product\u id)
其中KATEGORI.category_id=69
按产品分组。产品标识

MySQL创建一个组,在该组中,只要引入聚合函数,如
AVG()
COUNT()
,所有记录都会被放入其中。有关更多信息,请参见问题

您可能需要明确指定一个
GROUP BY
子句,并将
GROUP BY
之后的字段也添加到
SELECT
中,例如:

选择
PRODUCT.PRODUCT\u id,
奥塔拉马的平均值(所有奥亚拉马评级),
将(OYLAMA.评级)计算为TOPLAMOY
来自OYLAMA的oc_审查
作为产品加入oc_产品
ON(PRODUCT.PRODUCT\u id=OYLAMA.PRODUCT\u id)
内部将oc_产品_作为KATEGORI加入_类别
ON(KATEGORI.product\u id=product.product\u id)
其中KATEGORI.category_id=69
按产品分组。产品标识

谢谢,但是,只打印2个值,因为69类似乎只有两个产品,占了这两行。你想要什么样的计数和平均值?通过我的例子,你可以得到每种产品的数量和平均值。看来你想要不同的东西。可能是每个产品和客户?或者仅针对每个客户?您是否注意到我的示例代码末尾的
GROUP BY
?虽然有两个以上的产品,但只显示其中的两个,不幸的是sql查询无法工作。可能尝试删除
AVG(ALL OYLAMA.rating)
中的
ALL
。我不知道那是干什么用的。另外,请尝试直接在PHP外部对数据库运行查询,以确保不是PHP干扰了查询结果。谢谢,但是,只打印2个值,因为类别69似乎只有两个产品,占了这两行。你想要什么样的计数和平均值?通过我的例子,你可以得到每种产品的数量和平均值。看来你想要不同的东西。可能是每个产品和客户?或者仅针对每个客户?您是否注意到我的示例代码末尾的
GROUP BY
?虽然有两个以上的产品,但只显示其中的两个,不幸的是sql查询无法工作。可能尝试删除
AVG(ALL OYLAMA.rating)
中的
ALL
。我不知道那是干什么用的。另外,还可以尝试直接在PHP外部对数据库运行查询,以确保不是PHP干扰了查询结果。没有人会读那一行代码。请正确格式化代码。没有人会去读那一行代码。