无法分配第二个sql别名
在下面的示例中,我很难使用我的第二个别名。 我使用的是SquirrelSQL3.7 出错 错误:[SQL5001]列限定符或表T2未定义。SQLState: 42703错误代码:-5001 你是说无法分配第二个sql别名,sql,db2,alias,squirrel-sql,Sql,Db2,Alias,Squirrel Sql,在下面的示例中,我很难使用我的第二个别名。 我使用的是SquirrelSQL3.7 出错 错误:[SQL5001]列限定符或表T2未定义。SQLState: 42703错误代码:-5001 你是说 UPDATE myDatabaseOne.myTableOne t1 SET firstFieldToCopy = (SELECT DISTINCT alternateField FROM myDatabaseTwo.myTableTwo t2 WHERE t
UPDATE myDatabaseOne.myTableOne t1
SET firstFieldToCopy = (SELECT DISTINCT alternateField
FROM myDatabaseTwo.myTableTwo t2
WHERE t1.firstFieldToCopy = t2.alternateField);
请注意……的位置。。。这就是t2别名不起作用的原因
否则,查询会混淆您的意图
UPDATE t1
SET t1.firstfieldtocopy = t2.alternatefield
FROM mydatabaseone.mytableone t1
JOIN mydatabasetwo.mytabletwo t2 on t1.firstfieldtocopy = t2.alternate field
不过我不明白你的逻辑。。设置copy=alternate,但您正在筛选copy=alternate的位置。问题在于作用域<代码>t2只能在
(SELECT DISTINCT alternateField FROM myDatabaseTwo.myTableTwo t2)
这意味着当你说WHERE t1.firstFieldToCopy=t2.alternateField
时,你的数据库管理系统对你指的东西没有任何线索
不过,查询仍有两个问题:
DISTINCT
不用于返回单个值,而是用于消除重复项你的逻辑有点错误。。需要向我们展示您的数据的外观以及您试图将其更改为的内容。。我不知道为什么人们会根据你提出的问题来回答这个问题provided@JamieD77好吧,所有的答案都回答了为什么他会犯错误。问题模糊的事实并不会使相关错误变得不那么明显。@JulienBlanchard好吧,josh的第一个答案可能是正确的路径。。我不知道这是干什么用的。。Aaron的第二个答案可能不会在db2中编译。。我想你有一些有用的信息。。
(SELECT DISTINCT alternateField FROM myDatabaseTwo.myTableTwo t2)