srt*_*t32 7 sql postgresql join
假设我们有两个表:
contacts
具有列的表:id
和name
conversations
具有列的表:id
和contact_id
(FK 到contacts.id
)以下两个查询返回相同的数据:
SELECT contacts.name, contacts.id, conversations.id FROM contacts INNER JOIN conversations ON contacts.id = conversations.contact_id;
和
SELECT contacts.name, contacts.id, conversations.id FROM contacts INNER JOIN conversations ON id(contacts) = contact_id(conversations);
出于纯粹的理论原因,我想了解更多有关第二个(功能更强大)版本的信息。这种语法叫什么?我可以在哪里了解更多信息?这是 SQL 标准中的语法还是 PostgreSQL 中的语法?性能好吗?为什么它没有得到更广泛的应用?
“函数表示法”是 SQL 标准的扩展,性能与标准“属性表示法”(又名“点表示法”)相同。
名称的解析方式存在细微差别。例如:列名称优先于采用属性表示法的复合类型的函数。
属性表示法仅适用于采用单个参数的函数。所以这是一个有限的替代方案,规范的方法是使用函数的函数表示法(因此得名)。
另一方面,属性表示法更短(一个点与两个括号)、更便携(符合标准)并且通常是表限定列的规范方法。
请在手册中查找详细信息。
有关的: