gpt4 book ai didi

mysql - 合并MySQL中的两个表

转载 作者:行者123 更新时间:2023-11-29 11:55:16 24 4
gpt4 key购买 nike

表1:

| id            | int(11)      
| name | varchar(255)
| type | varchar(255)
| property1 | varchar(255)
| property2 | varchar(255)
| property3 | varchar(255)

表2:

| id            | int(11)      
| name | varchar(255)
| type_level | varchar(255)
| property11 | varchar(255)
| property12 | varchar(255)
....
| property33 | varchar(255)

这些表基本上代表相同的实体。 table1 就像一个简短的属性列表,table2 包含更多信息。

对于任何给定实体,name 属性在两个表中具有相同的值,不是 ID; typetype_level 包含相同的值,但遗憾的是命名不同。

我刚刚开始这个项目,我认为这种情况不太好,我想合并表。

我想合并表来创建此表:

表合并

| id            | int(11)      
| name | varchar(255)
| type | varchar(255)
| property1 | varchar(255)
| property2 | varchar(255)
| property3 | varchar(255)
| property11 | varchar(255)
| property12 | varchar(255)
| property13 | varchar(255)
....
| property33 | varchar(255)

生成的表应为每一行赋予唯一的 ID,并且具有相同名称的行应合并为一行......

我希望我解释得足够好。我怎样才能做到这一点?我尝试了 INNER JOINUNION 但到目前为止还没有以正确的方式。

最佳答案

假设两个表中都没有重复的名称并且它们匹配,您可以使用 join 执行您想要的操作:

create table table_merged as
select (@rn := @rn + 1) as id, t1.name, t1.type,
t1.property1, t1.property2, t1.property3,
t2.property11, t2.property12, t2.property13, . . .
from table1 t1 left join
table2 t2
on t1.name = t2.name and t1.type = t2.type_name cross join
(select @rn := 0) params;

此版本为合并表添加了另一个新 ID。

关于mysql - 合并MySQL中的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33308632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com