具有子查询还是仅联接到表上?

问题描述 投票:0回答:1

[今天使用某些SQL,我遇到了一个将HAVING与子查询一起使用的查询。我发现这有点奇怪,因为子查询中的表仅包含一列值,并且我认为将其连接到该表将更简单。

我发现的例子:

SELECT ST.COL1, ST.COL2, ST.COL3
FROM SOME_TABLE ST
HAVING ST.TYPE In (Select [Type] from [F Types]);

我以为这会做同样的事情,并且可能会更好:

SELECT ST.COL1, ST.COL2, ST.COL3
FROM SOME_TABLE ST
JOIN [F Types] FT
    ON ST.TYPE = FT.Types

我只是想确保自己没有丢失任何东西,因为我不明白为什么在这里使用HAVING

两个示例之间的区别是什么?

sql postgresql join having
1个回答
1
投票

最大的不同是要回退的内容,第一个查询仅从SOME_TABLE中提取数据,第二个查询从SOME_TABLE和[F类型]中提取。

© www.soinside.com 2019 - 2024. All rights reserved.