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?)
有人可以解释一下下面 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?)