Php MYsql在我的本地机器上出错。但在live上运行良好
这是我的MySQL查询Php MYsql在我的本地机器上出错。但在live上运行良好,php,mysql,localhost,Php,Mysql,Localhost,这是我的MySQL查询 SELECT sum(quantity) as quantity_sold, `gc_order_items`.`name` as `name`, `sku` FROM `gc_orders` JOIN `gc_order_items` ON `gc_order_items`.`order_id` = `gc_orders`.`id` WHERE `status` != 'cart' AND `gc_order_items`.`type` = 'product' GROU
SELECT sum(quantity) as quantity_sold, `gc_order_items`.`name` as `name`, `sku` FROM `gc_orders` JOIN `gc_order_items` ON `gc_order_items`.`order_id` = `gc_orders`.`id` WHERE `status` != 'cart' AND `gc_order_items`.`type` = 'product' GROUP BY `product_id`
我在本地服务器上收到此错误
SELECT列表的表达式#2不在GROUP BY子句中,它包含
未聚合列“go.gc\u order\u items.name”,该列不是
功能上依赖于GROUP BY子句中的列;这是
与sql\u模式不兼容=仅\u完整\u组\u由
请帮忙
以下是您当前的查询:
SELECT
SUM(quantity) AS quantity_sold,
gc_order_items.name AS name,
sku
FROM gc_orders
INNER JOIN gc_order_items
ON gc_order_items.order_id = gc_orders.id
WHERE status != 'cart' AND
gc_order_items.type = 'product'
GROUP BY product_id
在本地计算机上,模式很可能已打开。在符合ANSI SQL标准的这种模式下,GROUP BY
聚合查询中的每一列必须出现在GROUP BY
子句中,或者出现在聚合函数中,例如SUM()
。在上述查询中,您选择的是sku
和name
列,但它们既不出现在GROUP BY
中,也不出现在聚合函数中,因此出现错误
在实时机器上,我猜严格模式已关闭,这允许您继续查询
下面是一个关于您的查询版本的猜测,该版本可以在任何地方正确运行:
SELECT
t2.quantity_sold,
t2.name,
t1.sku
FROM gc_orders t1
INNER JOIN
(
SELECT order_id, name, SUM(quantity) AS quantity_sold
FROM gc_order_items
WHERE type = 'product'
GROUP BY order_id, name
) t2
ON t1.id = t2.order_id
WHERE t1.status != 'cart'
以下是您当前的查询:
SELECT
SUM(quantity) AS quantity_sold,
gc_order_items.name AS name,
sku
FROM gc_orders
INNER JOIN gc_order_items
ON gc_order_items.order_id = gc_orders.id
WHERE status != 'cart' AND
gc_order_items.type = 'product'
GROUP BY product_id
在本地计算机上,模式很可能已打开。在符合ANSI SQL标准的这种模式下,GROUP BY
聚合查询中的每一列必须出现在GROUP BY
子句中,或者出现在聚合函数中,例如SUM()
。在上述查询中,您选择的是sku
和name
列,但它们既不出现在GROUP BY
中,也不出现在聚合函数中,因此出现错误
在实时机器上,我猜严格模式已关闭,这允许您继续查询
下面是一个关于您的查询版本的猜测,该版本可以在任何地方正确运行:
SELECT
t2.quantity_sold,
t2.name,
t1.sku
FROM gc_orders t1
INNER JOIN
(
SELECT order_id, name, SUM(quantity) AS quantity_sold
FROM gc_order_items
WHERE type = 'product'
GROUP BY order_id, name
) t2
ON t1.id = t2.order_id
WHERE t1.status != 'cart'