sql - 何时使用不存在的插入选择?
问题描述
目前我正在使用 Where 插入新数据,如下面的代码所示。显而易见的问题是需要每天更改日期以插入新数据。以下是当前正在使用的代码:
INSERT INTO decisions (stock_id, date_price, last_updated_date, p_LT_d50, p_GT_d50)
SELECT stock_id, date_price, now(), adj_close_price < ub1_50_d, adj_close_price > ub1_50_d
FROM bollinger_bands
WHERE date_price = '8/04/2020';
我可以使用 Where Not Exist 代替每天手动更改日期吗?我应该使用 Where Not Exist 来解决我遇到的问题吗?如果是这样,我应该为 Select 的 Where Not Exist 部分填写什么?
这是我到目前为止所拥有的:
INSERT INTO decisions (stock_id, date_price, last_updated_date, p_LT_d50, p_GT_d50)
SELECT stock_id, date_price, now(), adj_close_price < ub1_50_d, adj_close_price > ub1_50_d
FROM bollinger_bands
WHERE NOT EXISTS (SELECT
任何帮助表示赞赏。
解决方案
插入当天的数据:
INSERT INTO decisions (stock_id, date_price, last_updated_date, p_LT_d50, p_GT_d50)
SELECT stock_id, date_price, now(), adj_close_price < ub1_50_d, adj_close_price > ub1_50_d
FROM bollinger_bands
WHERE date_price = CURRENT_DATE;
插入表格中仍然缺失的所有日期:
INSERT INTO decisions (stock_id, date_price, last_updated_date, p_LT_d50, p_GT_d50)
SELECT stock_id, date_price, now(), adj_close_price < ub1_50_d, adj_close_price > ub1_50_d
FROM bollinger_bands
WHERE date_price NOT IN (SELECT date_price FROM decisions);
与以下相同NOT EXISTS
:
INSERT INTO decisions (stock_id, date_price, last_updated_date, p_LT_d50, p_GT_d50)
SELECT stock_id, date_price, now(), adj_close_price < ub1_50_d, adj_close_price > ub1_50_d
FROM bollinger_bands bb
WHERE NOT EXISTS (SELECT * FROM decisions d WHERE d.date_price = bb.date_price);
推荐阅读
- push-notification - 代号一推送通知失败
- powershell - 使用 .txt 文件填充 Powershell 脚本
- javascript - 如何使用 Vue 对全局变量做出反应?
- raku - 模块名称匹配
- json - 将 JSON 对象分配给 ReactJS 中的样式属性是否会使对象不可配置
- amazon-s3 - 是否可以在 fluentd s3_output 中设置主机
- firebase - Firestore 如何保存日期?
- click - 从主机外壳向 VirtualBox VM 发送鼠标或触摸事件?
- git - 如何在拉取请求之前合并冲突?git pull 已经是最新的了
- python - Mat plot lib 绘制图像而不是保存(facebook Detectron 代码)