MySQL- WHERE子句在相关子查询中的作用是什么

时间:2017-10-26 11:48:54

标签: mysql where-clause correlated-subquery

引自here

"在以下查询中,我们选择购买价格高于每个产品系列中所有产品的平均购买价格的产品。

.List {
  overflow: hidden;
  max-height: 50px;
}
.List div, .List li{
  display: inline-block;
}

"

您可以在编辑器here中找到可执行代码。如果我只省略<div class="List"> <div> one </div> <div> two </div> <div> three </div> <div> four </div> <div> five </div> </div> <ul class="List"> <li> one </li> <li> two </li> <li> three </li> <li> four </li> <li> five </li> </ul>子句,结果似乎相同,除了输出结果中没有出现最后两行。

SELECT productname, buyprice FROM products p1 WHERE buyprice > (SELECT AVG(buyprice) FROM products WHERE productline = p1.productline) 子句的左右两侧到底做了什么,即每次得到什么值,比较如何进行等等?

2 个答案:

答案 0 :(得分:2)

此查询返回的产品名称的buyprice大于同一产品线上所有产品的buyprice平均值。

SELECT 
    productname, 
    buyprice
FROM
    products p1
WHERE
    buyprice > (
        SELECT AVG(buyprice) --return the average buyprice of all products
        FROM products
        WHERE productline = p1.productline  -- same productline
    )

答案 1 :(得分:0)

AVG()计算平均价格。在哪里比较您的项目buyprice与平均值,并列出那些mnore expensiv,