我刚注册并想问。 我学习SQL查询的时间不是很长,当我决定将表移动到另一个数据库时遇到了麻烦。阅读了一些有关构建长子查询的文章,但它们对我没有帮助。 在执行我的操作之前,一切工作都非常完美。 我只是移动了桌子,试图整天重写查询。
update [dbo].Full
set [salary] = 1000
where [dbo].Full.id in (
select distinct k1.id
from (
select id, Topic, User
from Full
where User not in (select distinct topic_name from [DB_1].dbo.S_School)
) k1
where k1.id not in (
select distinct k2.id
from (
select id, Topic, User
from Full
where User not in (select distinct topic_name from [DB_1].dbo.Shool)
) k2,
List_School t3
where charindex (t3.NameApp, k2.Topic)>5
)
)
我将表List_School
移到了数据库[DB_1]
上,我无法屈服。
我不能写[DB_1].dbo.List_School
。我应该再使用一个子查询吗?
我什至考虑过创建一些临时表,但这会影响执行速度。
SQL专家,请花一些时间在我身上。先感谢您。
对于您给我的每个提示,我都会感到高兴。
答案 0 :(得分:0)
似乎有很多问题。您正在将用户列与topic_name列进行比较。这些列名称的预期含义可能表明您没有比较正确的列。但这是一个猜测。
在最后一个子查询中,表List_School上具有ansi联接,但没有联接列,这意味着联接witk k2是笛卡尔积(又名交叉联接),这在大多数情况下都不是您想要的。再次猜测,因为没有提供实际问题数据或错误消息的详细信息。