繁体   English   中英

左联接子查询给出无效的对象名称错误

[英]Left join subquery gives invalid object name error

我有一个SQL查询,看起来像这样:

SELECT TOP 1000 FROM [Mydb].[dbo].[Table1] AS t1
LEFT JOIN (
    SELECT fk_id, Email FROM dbo.Table2 
) AS t2 ON t1.id = t2.fk_id

但这给了我错误:

Invalid object name 'dbo.Table2'.

知道为什么SQL Server无法在我的子查询中识别Table2吗?

PS。

我试图将dbo.Table2重命名为[Mydb].[dbo].[Table2] 但这给了我同样的错误。

首先,您的查询格式不正确。 完全不需要该子查询。

您发布的查询

SELECT TOP 1000 FROM [Mydb].[dbo].[Table1] AS t1
LEFT JOIN (
    SELECT fk_id, Email FROM dbo.Table2 
) AS t2 ON t1.id = t2.fk_id

可以简化如下,尝试一下

SELECT TOP 1000 * FROM [Table1] t1
LEFT JOIN Table2 t2 ON t1.id = t2.fk_id

不太确定这是否是问题,但在前1000名之后您错过了星号(*)。所以也许应该是以下内容

SELECT TOP 1000 * FROM [Mydb].[dbo].[Table1] AS t1
LEFT JOIN (
    SELECT fk_id, Email FROM dbo.Table2 
) AS t2 ON t1.id = t2.fk_id

如果这不起作用,请从dbo.Table2删除dbo ,然后尝试。

希望这可以帮助。

暂无
暂无

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

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