text = "".join([x for x in root.find('.//Body').itertext()]).strip().replace('\n', '')
表1包含两种类型的帐户,数字帐户和以字母D开头的子帐户。子帐户绑定到table3上的数字帐户,但我需要从表2获取仅包含数字的个人数据帐户。
对于以D开头的记录,我需要一组不同的连接,而不是数字记录。我希望尽可能避免使用工会。
有什么建议吗?
答案 0 :(得分:1)
我认为你想要这个JOIN
逻辑:
Select a.OPID, b.Name, b.Dept
from table1 a left join
table3 c
on a.OPID = c.OPID and a.OPID like 'D%' left join
table2 b
on (b.ID = c.OPID and a.OPID like 'D%') or
(b.ID = a.OPID and a.OPID not like 'D%');
也许你过分简化了这个问题。但逻辑a.OPID = c.OPID and c.OPID = b.ID
与a.OPID = b.ID
相同,因此您的逻辑仍然是:
Select a.OPID, b.Name, b.Dept
from table1 a join
table2 b
on b.ID = a.OPID;
也许您过度简化了问题,但如果没有,这实际上可能是最简单的解决方案。
答案 1 :(得分:0)
select a.OPID, b.Name, b.Dept from table1 a join table2 b
on a.OPID = b.ID
Where a.OPID like 'D%'
union
select a.OPID, b.Name, b.Dept from table1 a join table3 b
on a.OPID = b.ID
WHEre a.OPID not like 'D%'