一对多加入并检索单个结果

一对多加入并检索单个结果,第1张

一对多加入并检索单个结果

PostgreSQL的更简单,更短,更快

DISTINCT ON

SELECt DISTINCT ON (a.id)       a.id, a.name, a.date, b.pre1, b.pre2FROM   table_a aLEFT   JOIN table_b b USING (id)ORDER  BY a.id, b.sort

此紧密相关答案中的详细信息,解释,基准和链接。
我使用

LEFT JOIN
,这样不会删除
table_a
没有匹配行的行
table_b

旁注

虽然在PostgreSQL中被允许,但

date
用作列名是不明智的。在每个SQL标准中,它都是保留字,在PsotgreSQL中,它是类型名。

命名ID列也是一种反模式

id
。没有描述性,也没有帮助。一种(多种)可能的命​​名约定是在表作为主键的情况下对其进行命名
table_a_id
。引用它的外键使用相同的名称(如果没有其他自然名称优先)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5675380.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存