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
关键字),而不是老式的隐式连接(在fromfrom
子句中使用逗号);新代码中不应使用此旧语法
还要注意,条件周围的括号通常是不必要的,除非您将
和和或混合在一起,否则我在第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