我有一個令人困惑的邏輯。我有一個表person_details
,它有一個唯一的主鍵id
和外鍵persid
。另一個外鍵是common_id
。 common_id
基於1和2.如果是1,表示asset
。如果是2,則表示liability
。加入同一個表返回一些列重複
的person_details
表:
| id | details |persid | common_id |
|_____|__________________|_______|____________|
200 asset details 30 1
201 asset details2 30 1
203 liability detail 30 2
我想要得到的資產和負債的細節分離和返回一個連接查詢。當我嘗試一個簡單的查詢時,它會返回重複輸入責任。
select a.details assetdet,
b.details liabdetails,
a.common_id assetid,
b.common_id liabId
from person_details a
join person_details b
on a.persid = b.persid
where a.common_id = 1 and
b.common_id = 2 and
a.persid = 30
現在返回:
| assetdet | liabdetails | assetid | liabId |
|_______________|_________________|____________|__________|
asset details liability detail 1 2
asset details2 liability detail 1 2
我想回到
| assetdet | liabdetails | assetid | liabId |
|_______________|_________________|____________|__________|
asset details liability detail 1 2
asset details2 null 1 null
請解釋您的預期輸出 – GurV