Ich habe eine verwirrende Logik. Ich habe eine Tabelle person_details
, es hat einen eindeutigen Primärschlüssel id
und Fremdschlüssel persid
. Ein anderer Fremdschlüssel ist common_id
. Die common_id
basiert auf 1 und 2. Wenn 1, bedeutet das asset
. Wenn 2, dann bedeutet das liability
.Beitreten derselben Tabelle gibt einige Spalten wiederholen
Die person_details
Tabelle:
| id | details |persid | common_id |
|_____|__________________|_______|____________|
200 asset details 30 1
201 asset details2 30 1
203 liability detail 30 2
Ich möchte die Aktiv- und Passiv Details erhalten trennen und zurück eine einzelne Abfrage beitreten. Wenn ich eine einfache Abfrage versuche, gibt es einen wiederholten Haftungseintrag.
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
Jetzt gibt es:
| assetdet | liabdetails | assetid | liabId |
|_______________|_________________|____________|__________|
asset details liability detail 1 2
asset details2 liability detail 1 2
ich zurückkehren wollen
| assetdet | liabdetails | assetid | liabId |
|_______________|_________________|____________|__________|
asset details liability detail 1 2
asset details2 null 1 null
Bitte erläutern Sie Ihre erwartete Ausgabe – GurV