[英]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.