Postgres SQL 内部连接语法

Postgres SQL inner join syntax

有人可以解释一下下面 SQL 中的内连接语法吗:

 CREATE TABLE dataset AS 
  SELECT property.id 
       , amount.band
       , amount."value"
 FROM property  
 INNER JOIN (locality INNER JOIN amount ON locality.code = amount.code) ON (property.band = amount.band) AND (property.id = locality."UniqueId")

为什么table locality定义在第二个inner join之前?我从来没有遇到过这么奇怪的语法。

是否有更清晰的方法来纠正相同的查询,以便其他人可以轻松理解发生了什么?

FROM property  
  INNER JOIN (locality INNER JOIN amount ON locality.code = amount.code)
     ON (property.band = amount.band) AND (property.id = amount."UniqueId")

相同
FROM property  
  INNER JOIN amount ON property.band = amount.band AND property.id = amount."UniqueId"
  INNER JOIN locality ON locality.code = amount.code

INNER JOIN时,您可以根据需要重新排序。

(加入位置的任何特定原因?您没有 select 它的任何列。它是某种 EXISTS,还是如果有多个匹配,您是否希望返回多行其中的行 table?)