gpt4 book ai didi

mysql - Cron Bash - 从两个 MySQL 表中选择数据并导出到 CSV

转载 作者:行者123 更新时间:2023-11-30 01:18:42 25 4
gpt4 key购买 nike

我真的不擅长创建 MySQL 查询,需要一些帮助。我需要创建一个由 cron 作业每周触发一次的 bash 文件 - 查询两个表,抓取两个表中用户 ID 匹配的数据,并将选择的数据添加到 CSV 导出文件中。我希望 CSV 以逗号分隔。现在我最好能把它用制表符分开。

运行此查询的问题是我的语法(我知道这是错误的,因为我只是从网上的各种文章中窃取了片段)。我确实让每个数据库查询单独工作(从一个表中获取一个查询,从另一个表中获取另一个查询)。现在我需要将它们组合起来以仅获取我需要的数据。

这是我当前的(无效)查询:

#!/bin/bash
mysql -u USERNAME --password=PASSWORD --database=xxxx_DBNAME --execute='SELECT `xxxx_videotraining_user.user_id`, `xxxx_videotraining_user.training_title`, `xxxx_videotraining_user.status`, `xxxx_users.id`, `xxxx_users.name`, `xxxx_users.user_employer`, `xxxx_users.user_ss_number` WHERE `xxxx_videotraining_user.user_id` = `xxxx_users.id` AND `xxxx_videotraining_user.status` = "Completed" AND `xxxx_users.user_ss_number` > "1" ORDER BY `xxxx_videotraining_user.user_id` LIMIT 0, 10000 AND ' -C > /home/xxxx/subs/vtc/DB_EXPORTS/xxxx_videotraining_completed.csv
<小时/>

我想您可以在这里看到我想要完成的任务 - 任何帮助将不胜感激!

最佳答案

看起来您还缺少 FROM 子句,有一个尾随 AND 子句(如其他答案中所述),并且错误地引用了内容。这看起来是您的原始查询:

SELECT `xxxx_videotraining_user.user_id`, 
`xxxx_videotraining_user.training_title`,
`xxxx_videotraining_user.status`,
`xxxx_users.id`,
`xxxx_users.name`,
`xxxx_users.user_employer`,
`xxxx_users.user_ss_number`
WHERE `xxxx_videotraining_user.user_id` = `xxxx_users.id` AND
`xxxx_videotraining_user.status` = "Completed" AND
`xxxx_users.user_ss_number` > "1"
ORDER BY `xxxx_videotraining_user.user_id`
LIMIT 0, 10000 AND

我认为您想要添加 FROM 子句,分别引用表和字段,并删除尾随的 AND,以获得类似以下内容的内容:

    SELECT `xxxx_videotraining_user`.`user_id`, 
`xxxx_videotraining_user`.`training_title`,
`xxxx_videotraining_user`.`status`,
`xxxx_users`.`id`,
`xxxx_users`.`name`,
`xxxx_users`.`user_employer`,
`xxxx_users`.`user_ss_number`
FROM `xxxx_users`,
`xxxx_videotraining_user`
WHERE `xxxx_videotraining_user`.`user_id` = `xxxx_users`.`id` AND
`xxxx_videotraining_user`.`status` = "Completed" AND
`xxxx_users`.`user_ss_number` > "1"
ORDER BY `xxxx_videotraining_user`.`user_id`
LIMIT 0, 10000

还可以采取其他措施来缩短查询的大小并使其更简洁,但这应该可以使其正常运行。

我知道在处理长查询时对我有帮助的一件事是像这样格式化它们,将主要子句分开,以便您可以看到查询的不同部分。

请告诉我这是否有帮助。

关于mysql - Cron Bash - 从两个 MySQL 表中选择数据并导出到 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18795824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com