两个表之间的数据匹配 SQL [已关闭]

Data matches between two tables SQL [closed]

提问人:beforcom 提问时间:11/17/2023 最后编辑:beforcom 更新时间:11/17/2023 访问量:46

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。

2天前关闭。

我被困在一个小问题上,我需要你的帮助:)

我有一个“客户”表 包含以下列:姓氏、名字、Id_gender、

还有一个“性别”表 使用列:Id_gender、姓名、性别

我正在尝试进行查询,根据Id_gender值将正确的性别名称插入到“客户”表的“姓名性别”列中。

我这样做了,但它不起作用......你能给我一个线索或帮助我写这个请求吗?

insert into export_clients (Genre)
    SELECT psmk_gender_lang.name
    FROM export_clients
    INNER JOIN psmk_gender_lang
        ON export_clients.id_gender = psmk_gender_lang.id_gender;

这是 2 个表格: 在此处输入图像描述 在此处输入图像描述

我想在第一个表上添加性别

SQL格式

评论

0赞 kometen 11/17/2023
你能添加这是什么数据库吗?
1赞 Stu 11/17/2023
它不起作用不是你描述某事不起作用的方式。
0赞 Thorsten Kettner 11/17/2023
为什么 clients/customers 表中同时存在性别 ID 和性别?如果性别 ID 与性别不匹配,这意味着什么?您的数据模型似乎有问题,应该完全删除性别列。
0赞 Thorsten Kettner 11/17/2023
那么,“客户”表=export_clients?“性别”表= psmk_gender_lang?Id_gender,姓名性别=Id_gender,姓名,性别?export_clients(流派)=export_clients(性别)?您想更新一行并尝试使用 insert 执行此操作?
0赞 Thorsten Kettner 11/17/2023
请不要上传代码/数据/错误的图像。

答:

0赞 Ali Hemmati 11/17/2023 #1

查询存在一些问题。看起来它正在向export_clients表添加新行,而不是更改已存在的行中的性别名称。要解决此问题,应使用 UPDATE 语句和 JOIN。以下是您如何以不同的方式做到这一点:

更新后的查询更改了export_clients表中的“流派”列。它使用psmk_gender_lang表中的性别名称填充此列,并按id_gender匹配它们。

UPDATE export_clients
SET Genre = psmk_gender_lang.name
FROM psmk_gender_lang
WHERE export_clients.id_gender = psmk_gender_lang.id_gender;

评论

0赞 beforcom 11/17/2023
嗨,我添加两张图片来查看我问题的表格。我测试了 @Ali Hemmati 的代码,但出现以下错误:where 子句中的未知字段“psmk_gender_lang.id_gender”
0赞 beforcom 11/17/2023
选择部分给了我正确的结果。但是我不能做的是将它们插入到右行的表格中。
0赞 Ali Hemmati 11/17/2023
您能否编辑问题并提供有关它的更多信息,以帮助您?
0赞 Ali Hemmati 11/18/2023
您@beforcom可以编辑问题并提供有关它的更多信息吗?