Mysql I';当我试图找出平均值时,我遇到了一个错误

Mysql I';当我试图找出平均值时,我遇到了一个错误,mysql,sql,inner-join,average,where-clause,Mysql,Sql,Inner Join,Average,Where Clause,我试图找到图森一位客户订购的产品的平均价格,大概您想要: SELECT AVG(product.product_price) from product , customer , orderline , orders WHERE product.product_id = orderline.product_id AND orderline.order_id = orders.order_id and = orders.cust_id = cu

我试图找到图森一位客户订购的产品的平均价格,大概您想要:

SELECT AVG(product.product_price) 
  from product
     , customer
     , orderline
     , orders 
 WHERE product.product_id = orderline.product_id 
   AND orderline.order_id = orders.order_id 
   and = orders.cust_id = customer.cust_id 
   AND customer.city LIKE 'Tuscon'
 group 
    by product.name
这计算了图森所有销售的平均产品价格——这就是我如何理解你的问题和你的尝试

请注意,这使用了标准连接(使用
on
关键字),而不是老式的隐式连接(在from
from
子句中使用逗号);新代码中不应使用此旧语法


还要注意,条件周围的括号通常是不必要的,除非您将
混合在一起,否则我在第5行中看到了语法问题。此外,不需要在大括号中放置where子句。此外,您可以尝试使用JOIN而不是“,”

select avg(p.product_price) 
from product p
inner join orderline ol on ol.product_id = p.product_id
inner join orders    o  on o.order_id = ol.order_id 
inner join customer  c  on c.cust_id = o.cust_id
where c.city = 'Tuscon'

您遇到了什么错误?欢迎,为了提高您的体验,请阅读,an,然后看看,如何创建a,第5行中有一个额外的=我尝试使用它,但是,我得到一个空白查询。这也不太可能是区分大小写的排序规则。可能是因为没有匹配条件,因为我们使用的是内部联接。您可以检查是否是联接过滤结果。可以尝试使用外部联接或右侧联接。
SELECT product.name, AVG(product.product_price) 
from product 
    inner join orderline on product.product_id = orderline.product_id
    inner join orders on orderline.order_id = orders.order_id 
    inner join  customer on orders.cust_id = customer.cust_id
WHERE  customer.city LIKE 'Tuscon'
group by product.name