Sql连接概念-性能调试

Sql连接概念-性能调试,sql,database,teradata-sql-assistant,teradatasql,Sql,Database,Teradata Sql Assistant,Teradatasql,在下面的teradata SQL代码中,我想将表A中的3个不同列(col1、col2、col3)与employee表的name列连接起来。下面的操作工作正常,但希望在一个联接内执行此操作, 我们可以用另一种方法来避免同一个表上的多个联接吗?由于视图的多个联接,我得到了假脱机空间错误 Select (case when P.name is not null then A.col1 else null end)name1, (case when Q.name is not null t

在下面的teradata SQL代码中,我想将表A中的3个不同列(col1、col2、col3)与employee表的name列连接起来。下面的操作工作正常,但希望在一个联接内执行此操作, 我们可以用另一种方法来避免同一个表上的多个联接吗?由于视图的多个联接,我得到了假脱机空间错误

Select (case when P.name is not null then A.col1 else null end)name1,
       (case when Q.name is not null then A.col2 else null end)name2,
       (case when R.name is not null then A.col3 else null end)name3
From A Left join
     employee P
     on P.name = A.col1 Left join
     employee Q
     on Q.name = A.col2 Left join
     employee R on R.name = A.col3

请提供样本数据、预期结果,以及对代码应该执行的操作的解释。首先,您不应该在employee.name上进行联接,而应该在employee.id上进行联接,employee.id应该是employee表的主键,也是employee和employee之间的外键。在X.name=a.col1或X.name=a.col2或X.name=a.col3上从左联接employee X说
是有效的SQL,没有人能保证它的表现会更好。