[英]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.