Sql 左连接为空

Sql 左连接为空,sql,left-join,isnull,Sql,Left Join,Isnull,试图从几年的错误决策中清理出一堆数据库中的混乱。使用下面的示例,我们有一个来自“X”的字段,它链接到一个来自“Y”的字段。问题是,“X”还被用来链接到一个遗留系统,并保存了这两个系统的记录Z'可能包含一个备用链接,如果第一个连接为空,我想使用它…我不知道如何“高效地”创建这个链接,而不在临时表中运行两个单独的查询?谢谢 FROM dbo.x X LEFT JOIN (SELECT Y.id, Z.varnum FROM dbo.y Y LEFT JOIN d

试图从几年的错误决策中清理出一堆数据库中的混乱。使用下面的示例,我们有一个来自“X”的字段,它链接到一个来自“Y”的字段。问题是,“X”还被用来链接到一个遗留系统,并保存了这两个系统的记录Z'可能包含一个备用链接,如果第一个连接为空,我想使用它…我不知道如何“高效地”创建这个链接,而不在临时表中运行两个单独的查询?谢谢

FROM dbo.x X
LEFT JOIN   (SELECT Y.id, Z.varnum 
        FROM dbo.y Y
        LEFT JOIN dbo.Z
        ON Y.id = Z.varnum) W
ON X.id = ISNULL(W.id,W.varnum)

在select和两个left联接中使用合并函数

SELECT COALESCE(Y.ID, Z.VARNUM) FROM X
LEFT JOIN Y on X.ID = Y.ID
LEFT JOIN Z on X.ID = Z.VARNUM

为了澄清,您首先要将X连接到Y,如果找不到匹配项,请将X连接到Z?