Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
Mysql 仅在检查另一个表的值后更新一个表_Mysql - Fatal编程技术网

Mysql 仅在检查另一个表的值后更新一个表

Mysql 仅在检查另一个表的值后更新一个表,mysql,Mysql,我想知道是否有人能帮我解决这个问题。 当所有属于tab1ID值的ID(TABLE1)的列result值都在列result值1中时,我想更新表1中的列result设置为“1”。 表1中的ID与表2中的tab1ID相关。希望这能说明: 表1: id | result | 1 | null | 2 | null | 3 | null | id | result | 1 | 0 | 2 | 1 | 3

我想知道是否有人能帮我解决这个问题。 当所有属于tab1ID值的ID(TABLE1)的列result值都在列result值1中时,我想更新表1中的列result设置为“1”。 表1中的ID与表2中的tab1ID相关。希望这能说明:

表1:

id | result |
1  |  null  |       
2  |  null  |      
3  |  null  |   
id | result |
1  |    0   |       
2  |    1   |      
3  |    0   |
表2:

id | tab1ID | result |
1  |    1   |   1    
2  |    1   |   0   
3  |    1   |   1    
4  |    2   |   1   
5  |    2   |   1    
6  |    2   |   1      
7  |    3   |   0   
8  |    3   |   1   
9  |    3   |   1
更新状态现在应更新表1,如下所示:

表1:

id | result |
1  |  null  |       
2  |  null  |      
3  |  null  |   
id | result |
1  |    0   |       
2  |    1   |      
3  |    0   |
ID2处的结果现在是1,因为表2中所有属于tab1ID(2)的行的结果值都是1


如何使用一条update语句执行此操作?

此查询假设
表2.Result
的值仅为
1
0

UPDATE  table1 a
        INNER JOIN
        (
            SELECT  tab1ID, COUNT(*) = SUM(result) result
            FROM    table2
            GROUP   BY tab1ID
        ) b ON a.ID = b.tab1ID
SET     a.result = b.result

非常感谢您的帮助。这个很好用!但最初的表2.Result=NULL。对于您的解决方案,这意味着,如果Teble2.result中的一个为NULL,那么Table1.result将为0。对不起,我以前应该提过的。。我的坏..那么
NULL
算不算?根据您给出的示例,如果有一条附加记录
10 | 2 | NULL
,则是
表1
1
0
2
的值。在这种情况下,我不想更新表1。如果表2的所有结果都是1或0,我只想更新表1。也许,这是不可能的纯mysql,我首先要检查与php..是啊,aaaaaaaaaaaaaaaaahh!!!就这样!伟大的非常感谢你的帮助。你让我高兴极了!:-)六羟甲基三聚氰胺六甲醚。。我又试了一次小提琴,表1更新为0。只要result.table2中有空值,result.table1就应该保持空值。。可能吗?