0

我想知道是否有人可以帮助我解决这个问题。当所有属于tab1ID-values的ID(TABLE1)在列结果中的值为1时,我想更新TABLE1 SET“1”中的“result”列。table1中的ID与table2中的tab1ID相关。希望这会清楚:

表格1:

id | result |
1  |  null  |       
2  |  null  |      
3  |  null  |   

表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

UPDATE-Statement 现在应该像这样更新 TABLE1:

表格1:

id | result |
1  |    0   |       
2  |    1   |      
3  |    0   |

     ID2 处的结果现在为 1,因为 table2 中所有属于 tab1ID (2) 的行的结果值都是 1

我怎样才能用一个更新语句做到这一点?

4

1 回答 1

2

此查询假定 的值Table2.Result仅为10

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
于 2013-07-11T14:39:21.027 回答