Mysql 仅在检查另一个表的值后更新一个表
我想知道是否有人能帮我解决这个问题。 当所有属于tab1ID值的ID(TABLE1)的列result值都在列result值1中时,我想更新表1中的列result设置为“1”。 表1中的ID与表2中的tab1ID相关。希望这能说明: 表1: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
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
NULL
算不算?根据您给出的示例,如果有一条附加记录10 | 2 | NULL
,则是表1
1
或0
中2
的值。在这种情况下,我不想更新表1。如果表2的所有结果都是1或0,我只想更新表1。也许,这是不可能的纯mysql,我首先要检查与php..是啊,aaaaaaaaaaaaaaaaahh!!!就这样!伟大的非常感谢你的帮助。你让我高兴极了!:-)六羟甲基三聚氰胺六甲醚。。我又试了一次小提琴,表1更新为0。只要result.table2中有空值,result.table1就应该保持空值。。可能吗?