使用表中的值更新mysql数据库

哈姆扎·扎希尔(Hamza Zahir)

我对现有的mysql数据库结构进行了一些更改,并希望使用另一个表中的id将旧值更新为表中的新字段。结构如下:

表格1

+---------+--------+
| sale_id | type   |
+---------+--------+
| 110     | credit |
| 111     | cash   |
| 112     | credit |
+---------+--------+

表2

+---------+--------+---------+-----------------+---------------+
| sale_id | item_id|   price |  payment_type   |  total_amount |
+---------+--------+---------+-----------------+---------------+
| 110     | 1      |   20    |                 |               |    
| 111     | 2      |   30    |                 |               |
| 112     | 3      |   45    |                 |               |
| 112     | 4      |   15    |                 |               |
+---------+--------+---------+-----------------+---------------+

现在,我要使用table1中的sale_id作为参考来更新table2中的payment_type和total_amount。

table2更新后的预期结果

+---------+--------+---------+-----------------+---------------+
| sale_id | item_id|   price |  payment_type   |  total_amount |
+---------+--------+---------+-----------------+---------------+
| 110     | 1      |   20    |      credit     |      20       |    
| 111     | 2      |   30    |      cash       |      30       |
| 112     | 3      |   45    |      credit     |      45       |
| 112     | 4      |   15    |      credit     |      15       |
+---------+--------+---------+-----------------+---------------+

我当前的尝试不起作用,并引发错误。

混蛋的例子

CREATE TABLE table1(
   sale_id INTEGER  NOT NULL PRIMARY KEY 
  ,type  VARCHAR(6) NOT NULL
);
INSERT INTO table1(sale_id,type) VALUES (110,'Credit');
INSERT INTO table1(sale_id,type) VALUES (111,'Cash');
INSERT INTO table1(sale_id,type) VALUES (112,'Credit');


CREATE TABLE table2(
   sales_id INTEGER  NOT NULL PRIMARY KEY 
  ,item_id  VARCHAR(6) NOT NULL
  ,price  VARCHAR(6) NOT NULL
  ,payment_type  VARCHAR(6) NOT NULL
  ,total_amount  VARCHAR(6) NOT NULL
);

INSERT INTO table2(sales_id,item_id,price,payment_type,total_amount) VALUES (110,1,20,'','');
INSERT INTO table2(sales_id,item_id,price,payment_type,total_amount) VALUES (111,2,30,'','');
INSERT INTO table2(sales_id,item_id,price,payment_type,total_amount) VALUES (112,3,45,'','');
INSERT INTO table2(sales_id,item_id,price,payment_type,total_amount) VALUES (112,4,15,'','');


UPDATE table2 SET total_amount = 
    (SELECT price
        FROM table2
        INNER JOIN table1 ON sale_id = sales_id
        );
UPDATE table2 SET payment_type = 
    (SELECT type
        FROM table2
        INNER JOIN table1 ON sale_id = sales_id
        );

    
    
专线小巴

这就是更新/联接语法:

update table2 t2
inner join table1 t1 on t1.sale_id = t2.sale_id
set t2.payment_type = t1.type, t2.total_amount = t2.price

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用另一个表中的值更新数据库表

来自分类Dev

如何使用另一个数据库表中的值更新表

来自分类Dev

如何使用mySQL使用当前数据库表中的信息更新其他数据库表?

来自分类Dev

使用PHP在CodeIgniter中使用用户输入的值更新数据库表

来自分类Dev

如何使用同一数据库表的查询结果更新MYSQL表中的字段?

来自分类Dev

Sqlite数据库不使用新值更新表吗?

来自分类Dev

使用数据库中动态创建的输入字段更新mysql中的表

来自分类Dev

如何更新mysql数据库中的表

来自分类Dev

使用ajax更新Mysql数据库表

来自分类Dev

插入表或使用MYSQL数据库更新(如果存在)

来自分类Dev

使用相同的列值更新数据库的最新行

来自分类Dev

无法使用发送的值更新数据库

来自分类Dev

使用哈希值更新数据库中的所有行

来自分类Dev

使用PDO根据数据库中的旧值更新值

来自分类Dev

更新MySQL数据库表架构

来自分类Dev

根据值更新数据库

来自分类Dev

使用您在python中的发现更新mysql数据库

来自分类Dev

无法使用php更新mysql数据库中的值

来自分类Dev

更新 SQL 数据库中的表

来自分类Dev

使用变量更新数据库表

来自分类Dev

使用循环更新数据库表

来自分类Dev

添加一个收藏夹按钮以使用PHP中的值更新mysql数据库,而无需重新加载页面

来自分类Dev

如何使用 PHP 和 MySQL 根据表中的搜索值更新数据

来自分类Dev

mysql数据库表中的pkey

来自分类Dev

在mysql数据库中创建表

来自分类Dev

使用Codeigniter更新mysql数据库

来自分类Dev

用另一个表的值更新一个表,并且两个表位于单独的数据库中

来自分类Dev

如何使用django将数据更新到sql数据库中的表中

来自分类Dev

更新数据库表

Related 相关文章

热门标签

归档