【问题标题】:How to query circular data?如何查询循环数据?
【发布时间】:2021-05-09 11:15:49
【问题描述】:

我正在尝试计算 PayPal 中的货币转换费用。对于一种货币转换,我从 PayPal 收到两个条目,我将它们导入到表 paypal_transaction:

简化,表格如下:

paypal_transaction

transaction_id transaction_id_2 value
A B 10
B A 20
C D 30
D C 40

我想要的是这样的列表,其中我在一行中有两个关联的交易:

transaction_id transaction_id_2 value_tid1 value_tid2
A B 10 20
C D 30 40

但我得到的是:

transaction_id transaction_id_2 value_tid1 value_tid2
A B 10 20
B A 20 10
C D 30 40
D C 40 30

问题是条目相互引用(循环),所以我有点“重复”。

由于某种原因,我无法添加评论,因此回复 ysth:没有“主”ID,两个 ID 都是一对中的一个。这正是我的问题。我想要每个“ID 对”一行。这两个 ID 中的哪一个或两者都在该行中并不重要。

我也无法回答我的问题,stockoverflow 似乎不喜欢我的浏览器,所以: 谢谢你,卢克!! transaction_id

【问题讨论】:

  • 你想如何确定两个id中的哪一个显示在transaction_id中
  • 你必须决定你将如何做出改变,你可以通过只选择那些有value_tid1 < value_tid2的行来做到这一点,或者另一种方法可能是transaction_id < transaction_id_2

标签: mysql circular-reference


【解决方案1】:

这会给你所有的行

select a.transaction_id, b.transaction_id, a.value, b.value
from paypal_transaction a
inner join paypal_transaction b on a.transaction_id_2 = b.transaction_id

根据您的要求添加 where 子句

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多