我有这些表来处理:
TRANS
ID HPARENT1 HPERSON
--------------------------------
70001 60001 100
60001 50001 100
50001 NULL 2
,其中
ID
从7开始是收费ID
从6开始是收据ID
从5开始是同一TRANS
表在此示例中,70001是收据60001支付的费用,50001是收据的银行存款条目。
HPERSON
收费和收据是指向其收取和支付的人。
银行存款分录的HPERSON
是银行的ID。
BANK
ID BankName
--------------------------
2 MyBank
PERSON
ID FIRSTNAME LASTNAME
---------------------------------
100 Barry Allen
我想在输出中包含人名和他的银行名称。
Barry Allen MyBank
识别个人银行的方法是,找到他的存款条目(50001),然后从中找到hperson(2)(这是银行的ID)
我想我必须自己加入TRANS表。
不确定如何。
有人可以帮助我吗?
答案 0 :(得分:3)
您可以通过提供不同的“版本”别名来加入表格。我假设这个hierarki只有3个级别。
SELECT
p.FIRSTNAME, p.LASTNAME, b.BankName
FROM
PERSON p
JOIN
TRANS t1
ON t1.HPERSON = p.id
JOIN
TRANS t2
ON t2.ID = t1.HPARENT1
JOIN
TRANS t3
ON t3.ID = t2.HPARENT1
JOIN
BANK b
ON
b.ID = t3.HPERSON