繁体   English   中英

我不了解自我加入的必要性。 有人可以向我解释一下吗?

[英]I don't understand the need for self-joins. Can someone please explain them to me?

 SELECT region, name, population 
 FROM bbc x 
 WHERE population <= ALL (SELECT population FROM bbc y WHERE y.region=x.region AND population>0)

我不了解x和y用于同一张表的逻辑。

x和y分别是表bbc的两个不同实例,要在同一查询中两次列出一个表,必须为表名称的至少一个实例提供表别名。 该表别名可帮助查询处理器确定列是否应显示表的右侧或左侧版本中的数据。

该查询返回每个区域中人口最少的所有区域。 要进行此查询而不进行自我联接,您需要对每个区域执行2个查询:1。

set @min=Select min(population) from bbc where population>0 and region=@region

2。

select region, name, population from bbc where population=@min and region=@region

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM