引用自here
“在下面的查询中,我们选择购买价格大于每个产品线中所有产品的平均购买价格的产品。

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

"
您可以在编辑器here中找到可执行代码。如果我只是省略WHERE子句,结果似乎是一样的,只是最后两行没有出现在输出结果中。
WHERE子句的左右两边在这里具体做什么,即它们每次得到什么值,如何进行比较等等?

最佳答案

此查询返回的产品名称的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
    )

关于mysql - MySQL- WHERE子句在相关子查询中的作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46953542/

10-12 05:35