我有兩個表:
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 |
--------- -------------- ------------- -----------
我怎樣才能得到這個結果?
并且在兩列上加入不是很貴嗎?
uj5u.com熱心網友回復:
您可以嘗試在同一張表上進行 2 個連接以獲得預期的結果
SELECT tr.id,adf.address as address_from,adt.address as address_to,tr.value
FROM transactions tr
JOIN addresses adf ON tr.address_from = adf.id
JOIN addresses adt ON tr.address_to = adt.id
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/383192.html
標籤:sql 数据库 PostgreSQL的
