當我運行下面的查詢:當使用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