当我运行下面的查询:当使用UPDATE与SQL行SET似乎缺少
SELECT COUNT(x.objectID)
FROM db0..table0 as t
INNER JOIN db1..table1 as x ON t.objID = x.slaveID
INNER JOIN db1..table2 as table2 ON table2.sourceID = x.objectID
WHERE (****)
我得到268'466结果。然而,当我更新和添加一列db0..table0
与x.objectID
如下,我得到这些项目的145'346到我db0.table0
ALTER TABLE db0..table0 ADD new_objID bigint;
UPDATE db0..table0
SET db0..table0.new_objID = x.objectID
FROM db0..table0 as t
INNER JOIN db1..table1 as x ON t.objID = x.slaveID
INNER JOIN db1..table2 as table2 ON table2.sourceID = x.objectID
WHERE (****)
有人能看到什么错误?查询之间的唯一区别是第一个查询中的第一行被替换为第二个查询中的前两行。
要算在我的表我用最后的新值的数量,
SELECT COUNT(new_objID)
FROM db0..table0
这应返回的new_objID
所有无NULL
实例。
编辑
所以表结构
table0
table0_ID
表1
table1_ID
other_table1_ID
值
table0和表1由table0_ID和table1_ID在许多连接到一个关系。一个table0_ID对应许多table1_ID。我意识到,表2已不再需要 - 在过去,我想从这张表的信息,但不再是。
实际上,我所要做的就是将other_table1_ID条目添加到table0中,将other_table1_ID条目添加到每个table1_ID组的最小值条目中。
问题是这些查询之间的差异表明我做错了什么,我只是不能解决什么。
查询一个
SELECT COUNT(table1.table1_ID)
FROM db0..table0 as table0
INNER JOIN db1..table1 as table1
ON table0.table0_ID = table1.table1_ID
WHERE table1.value IN (SELECT MIN(value)
FROM db1..table1 as new_table1
WHERE new_table1.table1_ID = table1.table1_ID)
查询的两个
ALTER TABLE db0..table0 ADD newID bigint
UPDATE db0..table0
SET db0..table0.newID = table1.other_table1_ID
FROM db0..table0 as table0
INNER JOIN db1..table1 as table1
ON table0.table0_ID = table1.table1_ID
WHERE table1.value IN (SELECT MIN(value)
FROM db1..table1 as new_table1
WHERE new_table1.table1_ID = table1.table1_ID)
你得到你从我的回答如下应用此修复程序后,即使不同行数? – andrews
请编辑您的问题并阅读如何发布[最小,完整和可验证示例](http://stackoverflow.com/help/mcve) – Sami