Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何根据同一表中一行的条件更新一组行_Sql_Self Join - Fatal编程技术网

Sql 如何根据同一表中一行的条件更新一组行

Sql 如何根据同一表中一行的条件更新一组行,sql,self-join,Sql,Self Join,我必须更新一个表中一组行的状态字段。标准仅在一行中 例如: ID Name No Status 1 CR100 4711 1 2 CR100 4712 0 3 CR100 4713 0 4 CR101 4712 0 5 CR101 4713 0 6 CR102 4715 0 7 CR102 4788 1 8 CR102 4733 0 我想更新组中至

我必须更新一个表中一组行的状态字段。标准仅在一行中

例如:

ID    Name    No   Status
 1    CR100   4711   1
 2    CR100   4712   0
 3    CR100   4713   0

 4    CR101   4712   0
 5    CR101   4713   0

 6    CR102   4715   0
 7    CR102   4788   1
 8    CR102   4733   0

我想更新组中至少有一个状态为1的所有行中的状态。在我的示例中,必须更新组CR100和CR102行中的状态。到1。

您应该能够使用类似于以下内容的更新查询:

update yt
set status = 1
where exists (select name
              from yt t1
              where status = 1
                 and yt.name = t1.name);

请参见

。如果答案对你有效,那么你应该接受它。