繁体   English   中英

postgres-保留查询中的重复项

[英]postgres - retain duplicates from query

基于我们将数据与Postgres数组匹配的方式,我刚在代码中遇到一个错误。

这是问题所在:

在数据库中,我们有一个surcharge列,该列位于appointment表中,其中存储了附加到约会的所有附加费的ID。 在某些情况下,附加费可能会增加两次,因此在数据库中看起来像{1,1}

我正在使用类似以下的简单查询来检索与已附加到约会的附加费相关联的附加费数据:

SELECT s.* FROM surcharge s, appointment a WHERE s.id = ANY(a.surcharges);

不幸的是,我没有测试这种情况,其中存在多个相同的附加费。 结果是只返回了1条记录,而不是我真正需要的2条记录。

为了阐明这一点,一个示例是带有约会的appointment.surcharges = {1,1} ,我实际上希望能够从surcharges TWICE中检索记录,因为它有两个与之相关的附加费用。 然后,我使用这些记录来创建与约会相关的与计费相关的交易。

所有这些,有没有一种简单的方法允许查询返回我需要的重复项?

我可以在代码中处理这种情况,但是最好运行一个简单的查询来处理这种情况。

我正在运行Postgres 9.5。

先感谢您!

我认为,简单地将内部加入未加附加费的表格应会给您您想要的东西:

SELECT s.*
FROM surcharge s
INNER JOIN
(
    SELECT UNNEST(surcharges) AS surcharges
    FROM appointment
) a
    ON s.id = a.surcharges;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM