我正在编写一个脚本,它从不同的 mysql 表中获取一些数据:
#!/bin/bash
/usr/bin/mysql --password=****** --database=mydb<<EOMYSQL
select field1, field2 from table1 left join table2 on etc
into outfile '/home/jm/mysql/file1.txt';
select field3 from table3 left join table4 on etc
into outfile '/home/jm/mysql/file2.txt';
select field4,field5,field6,field7 from table5 left join table6 on etc
into outfile '/home/jm/mysql/file3.txt';
EOMYSQL
我的“问题”是我需要使用 3 个不同的输出文件,然后再合并它们。 有什么办法可以一起获得 3 个查询的输出吗?例如:
field1 field2 field3 field4 field5 field6 field7
谢谢,
PS:尝试过“联合所有”,但看起来每个查询需要相同数量的字段。
最佳答案
是的,UNION
要求每个查询的字段数量相同,但您可以用空字符串填充它们:
select field1, field2, "", "", "", "", "" from table1 left join table2 on etc
union
select "", "", field3, "", "", "", "" from table3 left join table4 on etc
union
select "", "", "", field4, field5, field6, field7 from table5 left join table6 on etc
你也可以使用NULL
:
select field1, field2, NULL, NULL, NULL, NULL, NULL from table1 left join table2 on etc
union
select NULL, NULL, field3, NULL, NULL, NULL, NULL from table3 left join table4 on etc
union
select NULL, NULL, NULL, field4, field5, field6, field7 from table5 left join table6 on etc
关于mysql - 一起获取多个 MySQL 查询的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14122698/