我在 Informix 資料庫中有一個由 5 個欄位組成的表,我需要復制一些值并更改rm_id欄位。那部分已經在作業了。嘗試復制它時出現問題,并且已經存在具有這 5 個值的一行,并且我收到一個Unique constraint violated錯誤。我開始為此寫一個查詢,我這樣做了:
SELECT *
FROM table t1
WHERE t1.rm_id = 249
AND NOT EXISTS (SELECT t2.prop, t2.rb_code, t2.bm_id, t2.bl, t2.rm_id
FROM table t2
WHERE t2.prop = t1.prop, t2.rb_code = t1.rb_code, t2.bm_id = t1.bm_id, t2.bl = t1.bl, t2.rm_id = t1.rm_id);
我收到一個語法錯誤,但我的查詢沒有發現任何問題;有沒有辦法在 Informix 中做這樣的事情?
uj5u.com熱心網友回復:
使用 AND 而不是逗號來分隔 WHERE 子句中的條件。
SELECT *
FROM table t1
WHERE t1.rm_id = 249
AND NOT EXISTS (SELECT t2.prop, t2.rb_code, t2.bm_id, t2.bl, t2.rm_id
FROM table t2
WHERE t2.prop = t1.prop
AND t2.rb_code = t1.rb_code
AND t2.bm_id = t1.bm_id
AND t2.bl = t1.bl
AND t2.rm_id = t1.rm_i
);
此外,對于 [NOT] EXISTS 操作,作為選擇串列項列出的內容并不重要。列出來是慣例NOT EXISTS(SELECT * FROM …)。
uj5u.com熱心網友回復:
簡單地說,我說你的框架就像 select x from table1 where table1.id = y and not exists(table2.abc) from table2 where table2=d
這就是您收到錯誤的原因。
嘗試連接 table1 和 table2 1st 并應用條件,此問題將得到解決。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/360870.html
上一篇:如何在SpringFramework中檢查某些端點的HTTP請求標頭
下一篇:Spring無法識別css檔案
