繁体   English   中英

我可以从一个SQL Server数据库的两个表和另一个数据库的一个表中进行左联接吗?

[英]Can I do left join from two table from one SQL Server database and one table from another database?

如有可能,有人可以给我看这个例子吗?

SELECT DISTINCT
    S.SheetID,
    IF.MOTHER,
    IF.FATHER,
    IF.SON,
    IF.DAUGHTER,
    FM.GRANDFATHER,
    FM.GRANDMOTHER, 
    FM.UNCLE,
    FM.AUNT
FROM 
    Family.dbo.family IF
LEFT JOIN 
    Family.dbo.fatherandmothersiderelatives FM ON S.SheetID = FM.FamilyID
LEFT JOIN 
    FammilyFiles.dbo.[Sheet] S ON S.SheetID = IF.FamilyID

是的,可以,但是您需要按引用的顺序连接表。 在您的示例Family.dbo.fatherandmothersiderelatives FM ON S.SheetID = FM.FamilyID和别名之前引用Sheet s (并且您将得到类似无法绑定多部分标识符“ S.SheetID”的错误 )。 您需要更改顺序:

SELECT DISTINCT
    S.SheetID,
    [IF].MOTHER,
    [IF].FATHER,
    [IF].SON,
    [IF].DAUGHTER,
    FM.GRANDFATHER,
    FM.GRANDMOTHER, 
    FM.UNCLE,
    FM.AUNT
FROM 
    Family.dbo.family [IF]
LEFT JOIN 
    Family.dbo.[Sheet] S ON S.SheetID = [IF].FamilyID
LEFT JOIN 
    FamilyFiles.dbo.fatherandmothersiderelatives FM ON S.SheetID = FM.FamilyID

IF也是一个保留关键字,因此对于表别名来说确实是一个糟糕的选择-如果您真的想使用它,可以将其括在上面的方括号中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM