我有两个更新查询,都使用相同的条件来获取数据。一旦一个查询运行,该条件将不会返回任何记录。第一个查询
UPDATE catentdesc
SET PUBLISHED = 0
WHERE CATENTRY_ID IN (
SELECT CATENTRY.CATENTRY_ID
FROM CATENTDESC,
CATENTRY
WHERE CATENTRY.catenttype_id = 'ProductBean'
AND CATENTDESC.CATENTRY_ID = CATENTRY.CATENTRY_ID
AND catentry.buyable = 1
AND catentdesc.published = 1
AND CATENTRY.CATENTRY_ID IN (
SELECT CATENTRY_ID
FROM CATGPENREL
WHERE CATALOG_ID = 10001
)
AND catentry.markfordelete = 0 minus
SELECT CATENTRY.CATENTRY_ID
FROM CATENTDESC,
CATENTRY
WHERE CATENTRY.catenttype_id = 'ProductBean'
AND CATENTDESC.CATENTRY_ID = CATENTRY.CATENTRY_ID
AND catentry.buyable = 1
AND catentdesc.published = 1
AND CATENTRY.CATENTRY_ID IN (
SELECT CATENTRY_ID
FROM CATGPENREL
WHERE CATALOG_ID = 10051
)
AND catentry.markfordelete = 0
)
第二个查询
UPDATE catentry
SET CATENTRY.BUYABLE = 0
WHERE CATENTRY_ID IN (
SELECT CATENTRY.CATENTRY_ID
FROM CATENTDESC,
CATENTRY
WHERE CATENTRY.catenttype_id = 'ProductBean'
AND CATENTDESC.CATENTRY_ID = CATENTRY.CATENTRY_ID
AND catentry.buyable = 1
AND catentdesc.published = 1
AND CATENTRY.CATENTRY_ID IN (
SELECT CATENTRY_ID
FROM CATGPENREL
WHERE CATALOG_ID = 10001
)
AND catentry.markfordelete = 0 minus
SELECT CATENTRY.CATENTRY_ID
FROM CATENTDESC,
CATENTRY
WHERE CATENTRY.catenttype_id = 'ProductBean'
AND CATENTDESC.CATENTRY_ID = CATENTRY.CATENTRY_ID
AND catentry.buyable = 1
AND catentdesc.published = 1
AND CATENTRY.CATENTRY_ID IN (
SELECT CATENTRY_ID
FROM CATGPENREL
WHERE CATALOG_ID = 10051
)
AND catentry.markfordelete = 0
)
问题是我需要更新 catentry 和 catentdesc ,但是如果一个更新另一个我无法更新,因为条件查询不会返回任何结果。
通过存储结果和更新表,可以使用过程。但我正在寻找一种更简单的方法,任何人都可以帮助我。
有没有办法在 DB2 中一次更新两个表?