mysql - 如何将一个表中的列数据填充到另一个表中?

标签 mysql sql

这是我需要在 sql managment studio 2017 中解决的问题: 我有一个数据库,这些数据库的两个表是 OrdenCliente

cliente有:

ClienteID-NumCedula-OrderID 

Orden有:

OrderID-ProductoID-ClienteID

我的问题是我需要将订单表中的所有 OrderiD(300 条记录)填充到 Cliente 表中,该表(cliente)的 OrderID 中全部为 Null。 我需要将 Order.OrderID 中的所有记录填充到 Cliente.OrderID

我尝试了一些在互联网上找到的东西,但它不起作用。 有任何想法吗? 非常感谢你:)

我尝试了一些有关 UPDATE 和 INSERT INTO SELECT 的查询,但没有任何效果正常。我对所有 SQL 数据库都是新手,所以有时很困难。

INSERT INTO CLIENTE(OrderID) 
SELECT OrderID FROM ORDEN;

UPDATE CLIENTE
SET    OrderID = ORDEN.OrderID
WHERE  CLIENTE.OrderID = ORDEN.OrderID;

关于如何在cliente.OrderID中填充/更新Orden.OrdenID的记录的查询或想法

最佳答案

就好像您正在寻找ON DUPLICATE KEY UPDATE子句:

INSERT INTO 
   CLIENTE(OrderID)
SELECT o.OrderID FROM ORDEN o
    ON DUPLICATE KEY UPDATE OrderID = o.OrderID, ColC = o.ColO;  

如果 ORDEN.OrderID 列的值与 CLIENTE.OrderID 的值不匹配,则将值插入到 CLIENTE 表中,否则更新。

[其中 CLIENTE.OrderID 列是主键,并假设 ColC 和 ColO 是额外列来显示下面演示中所述的更新操作]

Demo

关于mysql - 如何将一个表中的列数据填充到另一个表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57136985/

相关文章:

java - MYSQL:添加新行值时的通知

php - laravel 中 Eager Loading 领域的变化

java - 使用squiggle-sql 构建带有OR 子句的动态sql

sql - 在亚马逊 Redshift 中取消列出一个数组

mysql - SQL 选择返回中的屏蔽值

mysql - 子查询一直出错我该怎么办?

mysql - 计算地址中的人数 SQL

sql - “Select * from table 1,table 2 是一个有效的查询吗?

mysql - 数据库性能: how do more columns in a table impact design/development/performance

php - 旧的 CMS/博客网站会怎样?