【发布时间】:2020-10-05 01:28:58
【问题描述】:
大家好。这是我的问题。在第一张表中,人名用 2 种语言写在两列中。在第二个表中,一列是名称,因此名称是用第一种语言或第二种语言编写的。
如何比较这两个表?我的代码有效吗?
... t.datebirth=p.datebirth and (t.name=p.name1 or t.name=p.name2)
【问题讨论】:
标签: sql oracle join select where-clause
大家好。这是我的问题。在第一张表中,人名用 2 种语言写在两列中。在第二个表中,一列是名称,因此名称是用第一种语言或第二种语言编写的。
如何比较这两个表?我的代码有效吗?
... t.datebirth=p.datebirth and (t.name=p.name1 or t.name=p.name2)
【问题讨论】:
标签: sql oracle join select where-clause
t.datebirth=p.datebirth and (t.name=p.name1 or t.name=p.name2)我的代码有效吗?
根据您提供的有限信息,我理解您的问题:是的,它有效。它检查表p 中的两个名称是否与表t 中的名称相同。
你可以用in简化逻辑:
t.datebirth = p.datebirth and t.name in (p.name1, p.name2)
不过,这可能不是一个非常有效的方法。根据您的用例,您可能还需要考虑两个left joins,每个连接一个名称,并在查询的其余部分中附加条件逻辑。但是,如果没有对您的用例的更详细描述,就无法评估这一点。
【讨论】: