【发布时间】:2013-12-18 01:48:44
【问题描述】:
我有两张桌子 - Table_1 和 Table_2。
它们具有相同的列 - Col1、Col2、Col3、Col4(整数)。
表 2 有一行包含以下值:
Col1,Col2,Col3,Col4
1) a ,b ,0 ,0 (From Table_1)
Table_1 具有与 Col1 和 Col2 对应的重复值。
例如:
Col1,Col2,Col3,Col4
1) a ,b ,0 ,1 (From Table_1)
2) a ,b ,1 ,0 (From Table_1)
3) a ,b ,0 ,0 (From Table_1)
Col4(第 1 行)有一个“1”,Col3(第 2 行)有一个“1”。
当 Table_1 中的 Table_2 行的重复项的任何一列有 1 时,将 1 应用于相应列。
所以 Table_2 的最终值将是:
Col1,Col2,Col3,Col4
1) a ,b ,1 ,1 (From Table_1)
我试过了
UPDATE Table_2 JOIN
Table_1 ur
ON Table_1.Col1 = Table_2.Col1 and Table_1.Col2 = Table_2.Col2
SET Table_2.Col3 = if(Table_1.Col3 = 1,1,Col3), Table_2.Col4 = if(Table_1.Col4 = 1,1,Col4)
但它给了我以下结果:
Col1,Col2,Col3,Col4
1) a ,b ,0 ,1 (From Table_1)
这意味着它只考虑第一个匹配项。如何考虑 Table_1 中的所有匹配项?
【问题讨论】:
-
我删除了 SQL Server 标签,因为您使用的是 MySQL 语法。