SQL UPDATE语句用于更新具有另一个表中没有唯一标识符的值的表

时间:2012-04-16 15:24:18

标签: mysql sql unique

我有一个具有非唯一标识符的表,我需要使用具有唯一标识符的另一个表更新相应列。

基本上我有两张桌子

表1

| Col1 | Col2 |
---------------
|  A   |  1   |
---------------
|  A   |  2   |
---------------
|  B   |  4   |
---------------
|  C   |  6   |
---------------
|  C   |  9   |
---------------

表2

| Col1 | Col2 |
---------------
|  A   |  1   |
---------------
|  B   |  2   |
---------------
|  C   |  3   |
---------------

我想在Table1.Col2上使用Table2.Col2中的相应值进行计算,其中Table1.Col1 = Table2.Col1使用MySQL。

例如:

| Col1 | Col2 |
---------------
|  A   |  1   | // (1/1)
---------------
|  A   |  2   | // (2/1)
---------------
|  B   |  2   | // (4/2)
---------------
|  C   |  2   | // (6/3)
---------------
|  C   |  3   | // (9/3)
---------------

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

看起来你需要这样的东西:

UPDATE Table1
    JOIN Table2
        ON Table1.Col1 = Table2.Col2
SET Table1.Col2 = Table1.Col2/Table2.Col2

答案 1 :(得分:3)

加入表并使用算术运算符/

select Table1.Col2 / Table2.Col2 as result
from Table1 
inner join Table2 on Table1.Col1=Table2.Col2;

答案 2 :(得分:1)

您可以执行以下操作:

// for an update
update table1 
join table2 
    on table1.col1 = table2.col1
set table1.col2 = (table1.col2 /table2.col2)

// for a select 
SELECT (t1.col2 /t2.col2) as results
from table1  t1
join table2 t2
    on t1.col1 = t2.col1