mysql - 如何正确执行查询?

标签 mysql sql select group-by having

STRUCTURE TABLES AND ERROR WHEN EXECUTE QUERY ON SQLFIDDLE

查询:

SELECT 
            n.Type as Type,
            n.UserIdn as UserIdn,
            u.Username as Username,
            n.NewsIdn as NewsIdn,
            n.Header as Header,
            n.Text as Text,
            n.Tags as Tags,
            n.ImageLink as ImageLink,
            n.VideoLink as VideoLink,
            n.DateCreate as DateCreate,
            SUM(l.Type = 'up') as Uplikes, 
            SUM(l.Type = 'down') as Downlikes,
            (SUM(l.Type = 'up') - SUM(l.Type = 'down')) as SumLikes
        FROM News n 
            INNER JOIN Users u ON n.UserIdn = u.UserIdn 
            LEFT JOIN Likes l ON n.NewsIdn = l.NewsIdn
            WHERE SumLikes > 20 AND n.DateCreate < STR_TO_DATE('2014-01-03 14:17:43', '%Y-%m-%d %H:%i:%s')
        GROUP BY n.id
        ORDER by SumLikes DESC

当我使用查询时出现错误:

Unknown column 'SumLikes' in 'where clause'...

我知道“SumLikes”中存在错误,但如何正确地进行 sql 查询?

请告诉我如何制作?

最佳答案

为列添加别名时,我们需要对其进行不同的处理。

删除 SumLikes > 20 并在 GROUP BY

之后添加一个额外的命令

示例:

HAVING SumLikes > 20

关于mysql - 如何正确执行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21043212/

相关文章:

java - 组织.hibernate.HibernateException : save is not valid without active transaction

sql - 什么是运行缓慢的 PostgreSQL 查询?

c - C 中的连接超时

SQL - 将单列分成多列

mysql - Mysql Provider 的 Ado.net Entity Framework 中的多个数据库

php - 用户在现场的可能性

mysql - <> or NOT IN,为什么查询返回错误结果

mysql - 如何消除查询中的某些值

sql - 为用户友好度设计数据库

mysql - "... Where field ON (SELECT ..)"不能与工作 where 子句中的 "select"一起使用