MySQL: 将多个表导出到 CSV 文件
MySQL: export multiple tables to CSV file
我正在尝试将多个 MySQL 表导出到单个 CSV 文件中,这些表具有不同的列数并且没有任何共同点。示例如下:
表 1:
ID| Name
1 | Ted
2 | Marry
null| null
表 2:
Married| Age | Phone
Y | 35 | No
N | 25 | Yes
Y | 45 | No
我想要得到的结果是:
ID| Name | Married | Age | Phone
1 | Ted | Y | 35 | No
2 | Marry | N | 25 | Yes
null| null | Y | 45 | No
可以使用 MySQL 命令吗?我已经尝试了所有类型的 join
但它没有给我我需要的结果。
试试这个查询:
SELECT * FROM
(SELECT @n1:=@n1+1 as 'index', Table1.* FROM Table1, (select @n1:=0)t)t1
natural join (SELECT @n2:=@n2+1 as 'index', Table2.* FROM Table2, (select @n2:=0)t1)t2 ;
您可以在 this fiddle 中看到一个工作示例。
在示例中,我们为 Table1 和 Table2 和 [= 生成一个 index 列11=] 2 个表。
这种连接是使用表的 SELECT
返回的行位置完成的,没有任何 ORDER
运算符,通常 这不是一个好主意!
我不太确定您是否理解您的要求,但可以肯定的是您可以连接两个表而不必真正关心将匹配哪些行:
SET @i1=0;
SET @i2=0;
SELECT * INTO OUTFILE 'xyz' FIELDS TERMINATED BY ','
FROM (SELECT @i1:=@i1+1 as i1, table1.* FROM table1) AS a
JOIN (SELECT @i2:=@i2+1 as i2, table2.* FROM table2) b ON (a.i1=b.i2);
我正在尝试将多个 MySQL 表导出到单个 CSV 文件中,这些表具有不同的列数并且没有任何共同点。示例如下:
表 1:
ID| Name
1 | Ted
2 | Marry
null| null
表 2:
Married| Age | Phone
Y | 35 | No
N | 25 | Yes
Y | 45 | No
我想要得到的结果是:
ID| Name | Married | Age | Phone
1 | Ted | Y | 35 | No
2 | Marry | N | 25 | Yes
null| null | Y | 45 | No
可以使用 MySQL 命令吗?我已经尝试了所有类型的 join
但它没有给我我需要的结果。
试试这个查询:
SELECT * FROM
(SELECT @n1:=@n1+1 as 'index', Table1.* FROM Table1, (select @n1:=0)t)t1
natural join (SELECT @n2:=@n2+1 as 'index', Table2.* FROM Table2, (select @n2:=0)t1)t2 ;
您可以在 this fiddle 中看到一个工作示例。
在示例中,我们为 Table1 和 Table2 和 [= 生成一个 index 列11=] 2 个表。
这种连接是使用表的 SELECT
返回的行位置完成的,没有任何 ORDER
运算符,通常 这不是一个好主意!
我不太确定您是否理解您的要求,但可以肯定的是您可以连接两个表而不必真正关心将匹配哪些行:
SET @i1=0;
SET @i2=0;
SELECT * INTO OUTFILE 'xyz' FIELDS TERMINATED BY ','
FROM (SELECT @i1:=@i1+1 as i1, table1.* FROM table1) AS a
JOIN (SELECT @i2:=@i2+1 as i2, table2.* FROM table2) b ON (a.i1=b.i2);