phpmyadmin 将选定列从一个表插入到另一个SQL

ltskdhd1  于 2022-11-09  发布在  PHP
关注(0)|答案(1)|浏览(184)

我在同一台主机(localhost:3306)上有两个独立的数据库。我有一个来自第一个数据库的表,还有一个来自另一个数据库的表。

我需要匹配:

ID -> username
EMAIL -> email
FIRST_NAME -> first_name
LAST_NAME -> last_name

有没有软件自动的方法?需要我写一些特定的查询来将这4列从一个表复制到另一个表吗?我在网上搜索,但我没有找到任何例子。对于信息,第一张图片是来自keycloack的ldap用户,第二张图片是导入到一个sso auth应用程序的用户。
到目前为止,我手动复制用户的记录。
谢谢

3okqufwl

3okqufwl1#

您应该尝试将具有缺失/不同信息的用户从LDAP数据库更新到应用程序数据库

update u2 set email=u1.email, first_name=u1.first_name, last_name=u1.last_name
from database2.app_users u2 
join database1.ldap_users u1 on u1.id = u2.username
where isnull(u2.email, '') <> isnull(u1.email, '')
or isnull(u2.first_name, '') <> isnull(u1.first_name, '')
or isnull(u2.last_name, '') <> isnull(u1.last_name, '')

编辑

经过更详细的解释,我明白你需要插入丢失的用户,而不是更新他们。

insert into u2 (username, email, first_name, last_name)
select u1.id, u1.email, u1.first_name, u1.last_name
from database1.ldap_users u1 
left join database2.app_users u2 on u1.id = u2.username
where u2.username is null

这应该行得通

相关问题