我有这些桌子要处理:
反式
ID HPARENT1 HPERSON
--------------------------------
70001 60001 100
60001 50001 100
50001 NULL 2哪里
ID是收费的ID是收据ID是同一TRANS表中的银行存款项。在本例中,70001是由收据60001支付的费用,50001是收据的银行存款项。
收费单和收费单的HPERSON是被收取和支付的人。
其中,银行存款条目的HPERSON是银行的ID。
银行
ID BankName
--------------------------
2 MyBankPERSON
ID FIRSTNAME LASTNAME
---------------------------------
100 Barry Allen我想在输出中包括人名和银行名。
Barry Allen MyBank识别人的银行的方法是,找到他的存款条目(50001),然后从它(银行的id)中找到那个人(2)。
我想我得自己加入这张桌子了。
不知道怎么做。
有人能帮我吗?
发布于 2016-01-14 08:45:26
您可以通过提供如下不同的“版本”别名来将表连接到自己。我假设这个等级只有三个等级。
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.HPERSONhttps://stackoverflow.com/questions/34784728
复制相似问题