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

MySQL- what does the WHERE clause do in the correlated subquery here

引用自here

"在下面的查询中,我们 select 个产品的购买价格大于每个产品系列中所有产品的平均购买价格。

SELECT 
    productname, 
    buyprice
FROM
    products p1
WHERE
    buyprice > (SELECT 
            AVG(buyprice)
        FROM
            products
        WHERE
            productline = p1.productline)

您可以在编辑器中找到可执行代码here。如果我只是省略 WHERE 子句,结果似乎是相同的,除了最后 2 行没有出现在输出结果中。

WHERE 子句的左右两边在这里究竟做了什么,即它们每次得到什么值,比较是如何进行的等等?

此查询 return 产品名称的购买价格高于同一产品系列中所有产品的平均购买价格。

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
    )

AVG() 计算平均价格。将您的商品购买价格与平均价格进行比较,并仅列出那些比较昂贵的商品,