【发布时间】:2022-01-18 18:57:02
【问题描述】:
我有两张桌子:
Transactions:
+---------+--------------+------------+-----------+
| id | address_from | address_to | value |
+---------+--------------+------------+-----------+
| 1 | 1 | 2 | 1000 |
| 2 | 1 | 2 | 500 |
+---------+--------------+------------+-----------+
Addresses:
+---------+--------------+
| id | address |
+---------+--------------+
| 1 | address1 |
| 2 | address2 |
+---------+--------------+
我需要获取所有带有地址而不是 id 的交易:
SELECT * FROM transactions tr
JOIN addresses ad ON tr.address_from = ad.id OR tr.address_to = ad.id
WHERE tr.address_from = 1 OR tr.address_to = 1
然后我得到以下结果:
+---------+--------------+-----------+
| id | address | value |
+---------+--------------+-----------+
| 1 | address1 | 1000 |
| 1 | address1 | 1000 |
| 2 | address2 | 500 |
| 2 | address2 | 500 |
+---------+--------------+-----------+
但我需要这样的东西:
+---------+--------------+-------------+-----------+
| id | address_from | address_to | value |
+---------+--------------+-------------+-----------+
| 1 | address1 | address2 | 1000 |
| 2 | address1 | address2 | 500 |
+---------+--------------+-------------+-----------+
我怎样才能得到这个结果?
加入两列不是很贵吗?
【问题讨论】:
标签: sql database postgresql