[英]advanced SQL query help. need to translate ruby script to SQL query
我对SQL很陌生,我不得不将此ruby脚本转换为SQL,因为ruby脚本花费的时间太长,无法在服务器上运行。 这是ruby脚本:
orders = Order.find_all_by_state("in_progress"); nil
orders.each do |o|
if o.line_items.length == 0 and o.created_at > Time.parse("2011-12-14 00:00:00.000000 -08:00") and o.created_at < Time.parse("2011-12-21 00:00:00.000000 -08:00")
o.adjustments[0].destroy
o.shipment.destroy
o.turnaround_time.destroy
o.checkout.destroy
o.destroy
end; nil
end; nil
无论如何,关联如下:
订单有一个结帐,装运,周转时间,许多line_items和许多调整(我要删除的订单只有1个)。 我想删除所有没有订单项且在这些日期范围内(12月15日至20日)创建的订单。 我还想删除与这些订单关联的所有对象(装运,turnaround_times,结帐,调整)。 我是SQL新手,我绝对不知道如何执行此操作。 我一直在看SQL文档,但是我确实在为此语法苦苦挣扎。 如果我能得到一些帮助,那就太好了。
要删除不包含任何订单项的订单:
delete from order
where order_id not in (select order_id from line_item);
要删除(现在)没有订单的关联对象:
delete from shipment
where order_id not in (select order_id from order);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.