什么是首选,多个联接(具有数据重复)或多个小查询?

时间:2019-02-11 18:54:53

标签: sql

我有以下3张桌子:

Orders         Order_Line        Order_Charge
------         ----------        ------------
order_id       order_id          order_id
order_total    line_item         charge_name
order_date     line_total        charge_total

现在,我有一个程序可以选择此信息,并使用其所有相应信息构造一个Order对象。为了简单起见,假设它是创建订单的JSON数组。可以起到以下作用的

{
    "order1": {
       "order_id" : "1",
       "order_total" : "100.00",
       "order_date" : "2/25/19",
       "order_lines" : {
       ....
       },
       "order_charges" : {
       ..... 
       }
    },
    "order2" : {
     ....
    }      
}

现在,我遇到的问题是从SQL数据库中提取此信息的最有效方法。有两种方法。

我可以在order_id上连接这3个表,然后选择所有相关列。这样做的问题是,当您开始添加更多的行和表时,重复和行的数量将很快失去控制。这似乎不可持续,因为数据集可能会增长?

第二个是选择所有订单,然后选择第一个结果集中所有具有order_id的Order_Line,然后对Order_Charge执行相同的操作。这样可以增加查询数量,但效率更高。

还有其他方法吗?还是上述两种方法更优选?

0 个答案:

没有答案