繁体   English   中英

复杂的SQL查询,获取列数据,然后根据条件将其插入到另一个表中

[英]Complicated sql query, take column data and insert it into another table based on criteria

我手头有一项任务,这显然超出了我的mysql技能:)我正在学习...

我有两张桌子。

1. import
2. users

import包含列的分配,例如id,user_id,user_email ... users包含user_id和user_email

我需要迁移用户内容才能导入。 具体来说,我在导入中缺少user_id。 但是它包含user_email。

因此,我需要考虑一个语句,在这里我匹配两个表中的user_email并使用匹配中的user_id更新导入表。

到目前为止,我已经做到了:

SELECT u.user_id, u.user_email, i.user_email FROM users u, import i WHERE i.user_email = u.user_email;

基本上,您可以通过与user联接来直接更新表import

这是在MySQL

UPDATE `import` a
        INNER JOIN users b
            ON a.user_email = b.user_email 
SET     a.user_id  = b.user_id 

对于SQL Server

UPDATE  a
SET     a.user_id  = b.user_id 
FROM    [import] a
        INNER JOIN users b
            ON a.user_email = b.user_email

如果要根据用户的地址匹配用户,请确保他们是唯一的,则可以像这样加入他们:

UPDATE import
        SET import.user_id = users.user_id
    FROM import
    INNER JOIN users ON import.user_email = users.user_email

您走在正确的轨道上; 那会起作用; 您可能需要选择其他字段。 您也可以使用JOIN语句; 然后您可以决定如何处理用户表; 您要插入吗? 更新?

我认为标准SQL支持INSERT INTO SELECT,不确定更新,但是您的DBMS可能具有支持它的SQL扩展...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM