首页 > 解决方案 > 使用 SELECT 更新表

问题描述

使用以下方法将一些数据插入到表中:

INSERT INTO contactos (nombre_contacto,
        apellido_contacto,celular_contacto,email_contacto,detalle_contacto,
        id_empresa)
        VALUES (%s, %s, %s, %s, %s,(SELECT id_empresa FROM empresas
                  WHERE razon_social = %s))

我尝试使用以下方法更新数据:

UPDATE contactos
        SET nombre_contacto=%s,
            apellido_contacto=%s,
            celular_contacto=%s,
            email_contacto=%s,
            detalle_contacto=%s
            id_empresa=(SELECT id_empresa FROM empresas
                      WHERE razon_social = %s)

它没有用,所以我使用了这个:

    UPDATE contactos
            SET nombre_contacto='Jessica',
                apellido_contacto='Munoz',
                celular_contacto='123456',
                email_contacto='jesica.munoz',
                detalle_contacto='mama'
                contactos.id_empresa= empresas.id_empresa
                INSERT (ontactos.id_empresa)
                VALUES(SELECT id_empresa FROM empresas
WHERE razon_social = 'andrea sa')
            WHERE id_contacto='3'

我也尝试使用 FROM 更新它,但我是 sql 新手,并不真正了解它是如何工作的。任何帮助都会很棒。谢谢!

标签: pythonmysqlsql

解决方案


使用以下方法将一些数据插入到表中:

INSERT INTO contactos (nombre_contacto,
       apellido_contacto,celular_contacto,email_contacto,detalle_contacto,
       id_empresa)
       VALUES (%s, %s, %s, %s, %s,(SELECT id_empresa FROM empresas
                 WHERE razon_social = %s))

使用INSERT .. SELECT

INSERT INTO contactos (nombre_contacto, apellido_contacto, celular_contacto, 
                       email_contacto, detalle_contacto, id_empresa)
SELECT %s, %s, %s, %s, %s, id_empresa 
FROM empresas
WHERE razon_social = %s;

我尝试使用以下方法更新数据:

UPDATE contactos
       SET nombre_contacto=%s,
           apellido_contacto=%s,
           celular_contacto=%s,
           email_contacto=%s,
           detalle_contacto=%s
           id_empresa=(SELECT id_empresa FROM empresas
                     WHERE razon_social = %s)

使用多表更新:

UPDATE contactos
CROSS JOIN (SELECT id_empresa 
            FROM empresas
            WHERE razon_social = %s) xxx
SET nombre_contacto=%s,
    apellido_contacto=%s,
    celular_contacto=%s,
    email_contacto=%s,
    detalle_contacto=%s
    id_empresa=xxx.id_empresa;

注意 - 参数顺序已更改。


推荐阅读