我有2个表,adNote
和bookSlotItem
。我目前遇到的问题是adNote
表在多行中缺少storyId
的值。
好消息是bookSlotItem
表格具有storyId
的所有正确值。
我正在尝试编写一个基本上会使用adNote.storyId
中的值更新bookSlotItem.storyId
的查询。但是,如果adNote.storyId
没有值adNote.storyTaskTypeClass=2
,我只想这样做。我想使用每个表行中的processId
值来正确匹配它们。
因此,在下面的示例中,processId
表中124
adNote
的行将假定storyId
值为202
,因为它有一个{ {1}} storyTaskTypeClass
2
,storyId
值丢失。
非常感谢任何帮助。此外,任何有用的链接都会很棒。
广告表
╔═══════════╦══════════════╗══════════════════╗
║ processId ║ storyId ║storyTaskTypeClass║
╠═══════════╬══════════════╣══════════════════╣
║ 123 ║ ║ 1 ║
║ 124 ║ ║ 2 ║
║ 125 ║ 203 ║ 2 ║
║ 126 ║ 204 ║ 2 ║
╚═══════════╩══════════════╩══════════════════╝
bookSlotItem表
╔═══════════╦══════════════╗
║ processId ║ storyId ║
╠═══════════╬══════════════╣
║ 123 ║ 201 ║
║ 124 ║ 202 ║
║ 125 ║ 203 ║
║ 126 ║ 204 ║
╚═══════════╩══════════════╝
答案 0 :(得分:1)
您需要使用update
join
update adnote a
join bookSlotItem b on a.processid = b.processid
set a.storyid = b.storyid
where a.storyTaskTypeClass = 2
and a.storyid is null
答案 1 :(得分:0)
这是一个适合您的查询。我之前使用过类似的查询。
UPDATE an
JOIN bookSlotItem bsi
ON an.processId = bsi.processId
SET an.storyId = bsi.storyId
FROM adNote an
WHERE an.storyId = ''
AND an.storyTaskTypeClass = 2
基本上,您需要组合表并根据组合的表值执行UPDATE
。