2014-11-04 135 views
0

有没有可用于Postgresql的插件或选项,它允许省略子查询的别名?Postgresql - 避免子查询的别名

例如,我必须写这样的查询:

select * from filelist2 
where md5sum in(
select md5sum from(
select md5sum, count(md5sum) from filelist2 
group by md5sum 
having count(md5sum)>1) as MANDATORY_ALIAS) 
order by md5sum; 

没有别名,我得到以下错误:

ERROR: subquery in FROM must have an alias 
SQL Status:42601 

我觉得这非常讨厌,想忽略它,就像大多数其他数据库一样。

+1

大多数其他数据库需要太不是它.. – Steve 2014-11-04 06:44:02

+2

不,你不能离开它。 – 2014-11-04 06:49:01

+1

但是......你为什么在意? – 2014-11-04 08:13:31

回答

0

如果你想在这个查询中使用别名,滴子选择:

SELECT * 
FROM filelist2 
WHERE md5sum IN(
    SELECT md5sum 
    FROM filelist2 
    GROUP BY md5sum 
    HAVING COUNT(md5sum) > 1 
    ) 
ORDER BY 
    md5sum ASC; 
+0

那么,这是通过重写查询以避免子选择来避免它。我正在寻找一个选项来使用子选择时省略它。 – royskatt 2014-11-04 08:13:42

+0

如果您确实需要子查询,则必须使用别名。 – 2014-11-04 08:18:36