我有以下情况:
TABLE_1
ID DESC TABLE2REF
1 1stRow 2
2 2ndRow 4
3 3rdRow 5
4 4thRow 3
5 5thRow 4
6 6thRow 5
TABLE_2
ID DESC
1 Apples
2 Pears
3 Figs
4 Oranges
5 Grapes
不使用TABLE2REF的实际值(假设是TABLE 2 ID的外键),我想创建一个更新查询,更新当前引用Oranges或Grapes的TABLE 1行,而不是参考图)。
我试过了:
我尝试过各种查询而没有成功。任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
我不确定你的实际问题是什么。如果您想了解引用值,则需要table2ref
- 隐式或显式 -
以下标识Oranges
或Grapes
不使用table2
的行:
update table1
set table2ref = 3
where table2ref in (4, 5);
您也可以这样做:
update table1
set table2ref = 3
where in (5, 6);
但是,正确的方法是:
update table1
set table2ref = (select id from table2 where description = 'Figs')
where table2ref in (select id from table2 where description in ('Oranges', 'Grapes'));
答案 1 :(得分:0)
如果您想使用genrale方式,这可以帮助您:
UPDATE table1 tab1 SET table2ref = tab2.id
FROM table2 tab2
WHERE tab2.id = tab1.table2ref