mysql中自连接的逻辑问题

在sqlzoo上做题,有一道自连接的题不是很理解,题目如下:

img

我自己再datagrip中建了一个简单的表来测试代码,两个相同的表,命名为x和y,先执行子查询:筛选y表area大于0的部分,形成一个笛卡尔积(表1),再筛选两表continent相等的部分,形成表2。
然后执行主查询,筛选x的area大于y的area的部分,应该是表2标绿的部分,即国家名B,C,D。但是执行下来只有B和C,唯一的理解是第三行B和D又作了比较,所以删掉了较小的D,但我一直理解不了:主查询内只比较了area,为什么还会自动再比较name?

img

还有一个问题,如果去掉all用max函数,结果是一样的,但是子查询内并没有按照continent分组汇总,为什么会筛选出每个大洲的最大面积呢?

img

感觉自己对连接的逻辑理解有些问题,请各位指教,谢谢!

你这不是自连接,是嵌套查询
inner join才是自连接
select * from x,y where x.id=y.id这才是笛卡尔积
你根本就没形成笛卡尔积