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 中看到一个工作示例。

在示例中,我们为 Table1Table2 和 [= 生成一个 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);