我的最终目标是在特定条件下更新表1到表2的信息。更具体地说,我想更新从table1到table2的日期,其中id的匹配和table2中的日期为NULL。
我希望每个星期天都能这样做。
以下是具体细节:
**请记住,payee_id和id是相同的,但在两个不同的表中。 **
我打算从中复制的表称为订单,但我只想从该表中选择某些数据。我的查询如下:
表1
]
输出1
SELECT movement.payee_id,
min(origin_stop.sched_arrive_early) first_date
FROM orders
LEFT JOIN movement_order ON orders.id = movement_order.order_id
LEFT JOIN movement ON movement.id = movement_order.movement_id
LEFT JOIN stop as origin_stop ON origin_stop.id = movement.origin_stop_id
WHERE orders.status <> 'V'
GROUP BY movement.payee_id
表2
payee_id | first_date
-------------------|-----------------
STRINGID1 | 2013-12-20 15:00:00.000
STRINGID2 | 2013-12-27 13:00:00.000
输出2
SELECT id, initial_date
FROM drs_payee
表2输出应该是:
id | initial_date
-------------------|-----------------
STRINGID1 | NULL
STRINGID2 | NULL
我试图解决这个问题:
id | initial_date
-------------------|-----------------
STRINGID1 | 2013-12-20 15:00:00.000
STRINGID2 | 2013-12-27 13:00:00.000
不确定这种格式是否正确,以及你是否可以在UPDATE中进行SELECT,如上所示。
我相信我必须有一个循环才能找到匹配UPDATE drs_payee a
(SELECT movement.payee_id,
min(origin_stop.sched_arrive_early) carrier_first_shipped_date
FROM orders
LEFT JOIN movement_order ON orders.id = movement_order.order_id
LEFT JOIN movement ON movement.id = movement_order.movement_id
LEFT JOIN stop as origin_stop ON origin_stop.id = movement.origin_stop_id
WHERE orders.status <> 'V'
GROUP BY movement.payee_id) b
ON a.id = b.payee_id
SET a.initial_date = b.first_date
WHERE a.initial_date IS NULL
的ID。这是在存储过程中创建的,以循环id并创建每周作业计划或某种类型的更新查询是否足够?如果可能的话,请使用我的数据帮助或指导我使用更新查询或存储过程示例。
先谢谢大家!
答案 0 :(得分:0)
对于预定查询,对我来说最好的事情是创建事件。首先你必须选择你的数据库,在右上角你会看到一个名为&#34; events&#34;的phpmyadmin中的选项。您必须打开事件计划程序,并在phpMyadmin中使用超级权限用户登录。
执行此操作后,查询为:
body {
background: linear-gradient(to left top, blue, red) fixed;
}
&#13;
必须有效。
如果您需要有关超级优惠检查this
的帮助我希望它适合你。
Caio Ortega
答案 1 :(得分:0)
更新table2 payee_id = id上的内连接table1 set initial_date = first_date其中initial_date为null
通过SQL Server代理,我们可以根据我们的要求(例如每个星期天)安排查询