在Ubuntu终端中运行带有join的MYSQL选择查询



我正在尝试运行以下查询,并将结果保存到文件中。但我不知道确切的语法,因为我是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'

相关内容

  • 没有找到相关文章

最新更新