sql - 在 SQL 中使用子查询返回每个派生表必须有自己的别名错误?

标签 sql

我发现很难理解为什么以下查询不起作用:

SELECT rating_count 
FROM 
    (SELECT 
         title, 
         COUNT(rating) AS rating_count
     FROM series
     LEFT JOIN reviews ON series.id = reviews.series_id
     GROUP BY series.id);

子查询的结果如下:

enter image description here

为什么当我尝试查询 rating_count 时,它不起作用?我想我可以要求这个。我的目的是过滤那些具有 Rating_count = 0 的行。

我想尝试:

SELECT * 
FROM 
    (SELECT
         title, COUNT(rating) AS rating_count
     FROM series
     LEFT JOIN reviews ON series.id = reviews.series_id
     GROUP BY series.id) 
WHERE rating_count = 0; 

最佳答案

正如错误所述,您需要为派生表添加别名:

SELECT * FROM (
    SELECT
    title, 
    count(rating) as rating_count
    FROM series
    LEFT JOIN reviews
        ON series.id = reviews.series_id
    GROUP BY series.id
    ) AS t
WHERE rating_count=0; 

关于sql - 在 SQL 中使用子查询返回每个派生表必须有自己的别名错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70669625/

相关文章:

sql - 初学者多连接问题

mysql - sql查询相同id但不同值的总和?

c# - 从 C# 中的存储过程返回最后一个 SELECT 值

sql - 在不使用不同运算符的情况下比较 Sql 中的行? (不同的运营商实现)

mysql - mysql表中的前导数字

c# - 将全文搜索与 SQL Server 合并有多难?

java - 带有 @Transactional 的 EntityManager persist() 不会抛出 DataIntegrityViolationException

sql - 如何在垂直设计的表格上实现搜索?

php - 防止使用PHP注入(inject)SQL

sql - postgresql 试图调用更新返回多行