代码之家  ›  专栏  ›  技术社区  ›  naiquevin

MySQL中子查询结果的条件

  •  2
  • naiquevin  · 技术社区  · 14 年前

    我正试图运行这样的查询

    SELECT a, b , c, (SELECT INNULL(x,y)) as mycol WHERE mycol < 400 ;
    

    但它给出了错误

    #1054 - Unknown column 'mycol' in 'where clause'
    

    正确的方法是什么?

    谢谢。

    2 回复  |  直到 8 年前
        1
  •  3
  •   hgulyan    14 年前

    它是如此 SQL语言 我想,同样的问题也在 MySQL .

    尝试改变 在哪里? . 在哪里? 子句看不到已重命名的列。

    工作方式与工作地点相同,例如(mycol<400和a>5)。

    小组通过 应该在 .

    查看链接中的示例。

    http://www.databasejournal.com/features/mysql/article.php/3469351/The-HAVING-and-GROUP-BY-SQL-clauses.htm

        2
  •  0
  •   croxy StartPlayer    8 年前

    @我怀疑你的回答。不是重命名阻止了人们使用 WHERE 子句,而不是子查询。所以假设我有一个疑问:

    SELECT id as ID FROM user WHERE ID > 10;
    

    这会非常好的。
    现在假设我还有一个查询:

    SELECT name, (SELECT id FROM user_detail WHERE user_id = 20) as ID FROM user WHERE ID > 19;
    

    此特定查询将产生以下错误:

    未知列ID

    所以,它是关于使用子查询和列别名,而不仅仅是列别名。 因此,在这种情况下,您必须使用 HAVING 而不是 在哪里? .

    推荐文章