我正在尝试运行以下查询,并将结果保存到文件中。但我不知道确切的语法,因为我是MYSQL的新手。
SELECT b.*,c.* FROM tableb as b JOIN tablec as c ON c.rootid = b.id WHERE b.status = 2;
我想在Ubuntu终端内的MYSQL外壳上运行这个查询。并将结果保存在文件中。有人能指导一下确切的语法吗?我在ubuntu 18.04终端上使用MYSQL版本14.14版本5.7。谢谢
更新:我准确地尝试了下面的查询,发现错误:
mysql -u prod -p -e"SELECT tabler.* , tablec.* FROM tablec JOIN tableo ON tablec.id = tableo.id JOIN tabler ON tableo.id = tabler.id WHERE tabler.status = 4;">/tmp/tbldata;
我看到这个错误:
您的sql语法中有错误,请检查相应的手册到您的mysql服务器版本
有什么帮助吗?
第二次更新我的最终查询如下:
SELECT tabler.* , tablec.* INTO OUTFILE '/tmp/data.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n' FROM tablec JOIN tableo ON tablec.id = tableo.id JOIN tabler ON tableo.id = tabler.id WHERE tabler.status = 4;
我看到以下错误:
访问被拒绝您需要(至少一个(的文件权限该操作
我使用过的产品没有权限。如何授予对csv文件的写入权限?
mysql -u root -p -e"SELECT b.*,c.* FROM tableb as b JOIN tablec as c ON c.rootid = b.id WHERE b.status = 2" > /tmp/table_data
注意:请使用您的用户名而不是root
。
另一种方式,你可以使用它INTO OUTFILE
SELECT b.*,c.*
FROM tableb as b
JOIN tablec as c ON c.rootid = b.id
WHERE b.status = 2
INTO OUTFILE '/tmp/table_data.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY 'n'