问题描述
尝试此操作时,我始终遇到此错误:
update table1
set value1="apple"
where id IN (
select * table1_table2 where value2= "juice"
)
解决方法
正如已经指出的那样,问题出在使用SELECT *
的子查询中,该子查询选择两个或更多列。我建议在这里使用EXISTS
逻辑:
UPDATE table1 t1
SET value1 = 'apple'
WHERE EXISTS (SELECT 1 FROM table1_table2 t12
WHERE t12.some_id = t1.id AND t2.value = 'juice');
此答案假定您要与table1_table2
进行比较的table1#id
中的列称为some_id
。
您不能在子句中选择多列
update table1
set value1="apple"
where id IN (
select id from table1_table2 where value2= "juice"
)