gpt4 book ai didi

mysql - 合并 3 个或更多表,故意没有连接条件

转载 作者:行者123 更新时间:2023-11-29 01:43:48 25 4
gpt4 key购买 nike

如何在 mysql 中连接 3 或更多表,如下所示?

  • 每个表的每一列都有一列(ID除外)
  • ID 字段值全部进入新表中的相同 ID 字段
  • 添加了一个名为 table 的附加列,其值是源表名称
  • 添加了一个自动递增的 newID 字段
  • 每一行只有一个表,不相关的字段有空值
  • 总行数等于所有表中记录的总和

只有两个表的例子:

TableA:                  TableB          
ID | fieldA ID | fieldB
----------------- -----------------
1 | valueA1 1 | valueB1
2 | valueA2 2 | valueB2


ResultTable:
newID | ID | table | fieldA | fieldB
---------------------------------------------
1 | 1 | TableA | valueA1 |
2 | 2 | TableA | valueA2 |
3 | 1 | TableB | | valueB1
4 | 2 | TableB | | valueB2

我知道这听起来可能有点奇怪!我将尝试使用它通过这个 batch-insert 将来自不同表的记录的节点批量插入到 neojs 图形数据库中。脚本。考虑到我几乎不知道我在这两个数据库中做什么,这可能很有趣 ;-)。

最佳答案

<罢工>试试这个,

SELECT  @rownum := @rownum + 1 AS NewID,
a.*
FROM
(
SELECT ID, fieldA, '' AS fieldB
FROM tableA
UNION ALL
SELECT ID, '' AS fieldA, fieldB
FROM tableB
) a, (SELECT @rownum:=0) r

SQLFiddle Demo

<罢工>

  • 创建新表

这是建议的架构

CREATE TABLE Newtable
(
NewID INT AUTO_INCREMENT,
ID INT NOT NULL,
FieldA VARCHAR(30),
FieldB Varchar(30),
CONSTRAINT tb_pk PRIMARY KEY (NewID)
)
  • 然后插入您的值(value)观,

这是使用 INSERT INTO...SELECT 的查询声明

INSERT INTO NewTable (ID, fieldA, fieldB)
SELECT ID, fieldA, NULL AS fieldB
FROM tableA
UNION ALL
SELECT ID, NULL AS fieldA, fieldB
FROM tableB

关于mysql - 合并 3 个或更多表,故意没有连接条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12506516/

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