在 Ubuntu 终端中运行带有连接的 MYSQL 选择查询 [关闭]
Posted
技术标签:
【中文标题】在 Ubuntu 终端中运行带有连接的 MYSQL 选择查询 [关闭]【英文标题】:Run MYSQL select query with join in Ubuntu terminal [closed] 【发布时间】:2021-02-06 12:45:55 【问题描述】:我尝试运行以下查询并将结果保存到文件中。但是我不知道确切的语法,因为我是 mysql 新手。
SELECT b.*,c.* FROM tableb as b JOIN tablec as c ON c.rootid = b.id WHERE b.status = 2;
我想在 Ubuntu 终端内的 MYSQL shell 上运行此查询。并将结果保存在文件中。有人可以指导确切的语法吗?我在 ubuntu 18.04 终端上使用 MYSQL Ver 14.14 Dist 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 文件的写入权限?
【问题讨论】:
【参考方案1】: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'
【讨论】:
我尝试了这个查询,但我不断收到错误。用错误更新了我的问题。请帮忙 您已在查询中包含;
。删除它。在>
之前和之后保留空间@
谢谢。现在我看到文件权限错误:拒绝访问,您需要(至少一个)此操作的文件权限。使用我的最新查询编辑问题
获取访问权限试试这个解决方案***.com/questions/6091427/…以上是关于在 Ubuntu 终端中运行带有连接的 MYSQL 选择查询 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在Ubuntu上使用VSCode编译MySQL Connector/C连接库