繁体   English   中英

高级SQL查询帮助。 需要将Ruby脚本转换为SQL查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM