Mysql SQL UPDATE语句,用于使用不具有唯一标识符的另一个表中的值更新表
我有一个具有非唯一标识符的表,我需要使用另一个具有唯一标识符的表中的值更新相应的列 基本上我有两张桌子 表1Mysql SQL UPDATE语句,用于使用不具有唯一标识符的另一个表中的值更新表,mysql,sql,unique,Mysql,Sql,Unique,我有一个具有非唯一标识符的表,我需要使用另一个具有唯一标识符的表中的值更新相应的列 基本上我有两张桌子 表1 | Col1 | Col2 | --------------- | A | 1 | --------------- | A | 2 | --------------- | B | 4 | --------------- | C | 6 | --------------- | C | 9 | --------------- 表2
| Col1 | Col2 |
---------------
| A | 1 |
---------------
| A | 2 |
---------------
| B | 4 |
---------------
| C | 6 |
---------------
| C | 9 |
---------------
表2
| Col1 | Col2 |
---------------
| A | 1 |
---------------
| B | 2 |
---------------
| C | 3 |
---------------
我想使用MySQL对Table1.Col2进行计算,计算值来自Table2.Col2,其中Table1.Col1=Table2.Col1
例如:
| Col1 | Col2 |
---------------
| A | 1 | // (1/1)
---------------
| A | 2 | // (2/1)
---------------
| B | 2 | // (4/2)
---------------
| C | 2 | // (6/3)
---------------
| C | 3 | // (9/3)
---------------
任何帮助都将不胜感激 看起来你需要这样的东西:
UPDATE Table1
JOIN Table2
ON Table1.Col1 = Table2.Col2
SET Table1.Col2 = Table1.Col2/Table2.Col2
看起来你需要这样的东西:
UPDATE Table1
JOIN Table2
ON Table1.Col1 = Table2.Col2
SET Table1.Col2 = Table1.Col2/Table2.Col2
连接表并使用算术运算符/
select Table1.Col2 / Table2.Col2 as result
from Table1
inner join Table2 on Table1.Col1=Table2.Col2;
连接表并使用算术运算符/
select Table1.Col2 / Table2.Col2 as result
from Table1
inner join Table2 on Table1.Col1=Table2.Col2;
您可以执行以下操作:
// 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
您可以执行以下操作:
// 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
Col1在表2中是唯一的吗?如果不是,您希望使用哪个值?Col1在表2中是唯一的吗?如果不是,您希望使用哪个值?听起来他不想进行更新,只需返回一个计算。听起来好像表1和表2已经存在并且已经填充了。@joeframbach引用OP:“我需要用另一个具有唯一标识符的表中的值更新相应的列”那么我认为您需要
设置表1。结果而不是设置表1。Col2
@joeframbach Table1在本例中没有结果列,那么该如何工作呢?这是一个示例。我认为OP不想更改原始值,只是想对现有数据进行计算。听起来他不想进行更新,只是返回一个计算。听起来好像表1和表2已经存在并且已经填充了。@joeframbach引用OP:“我需要用另一个具有唯一标识符的表中的值更新相应的列”那么我认为您需要设置表1。结果而不是设置表1。Col2
@joeframbach Table1在本例中没有结果列,那么该如何工作呢?这是一个示例。我认为OP不想改变原始值,只想对现有数据进行计算。