mysql用什么替代 =_mysql – 什么是替代连接查询

本文探讨了如何在SQL查询中选择合适的策略,以提高性能。针对具有多个表格的数据,比较了使用子查询和表联接来获取每个orderer_id的订单数量、总商品数量和总价的方法。在订单和item_order表较大的情况下,分析了两种方法的效率和适用场景。
摘要由CSDN通过智能技术生成

表:项目

+---+-----------+

|id | name |

+---+-----------+

| 1 | Product-A |

| 2 | Product-B |

+---+-----------+

表:订单

+---+-----+------------+

|id |price| orderer_id |

+---+-----+------------+

| 1 | 100 | 53 |

| 2 | 240 | 54 |

| 3 | 200 | 54 |

| 4 | 150 | 53 |

+---+-----+------------+

表:item_order

+----+--------+---------+----------+

| id |order_id| item_id | quantity |

+----+--------+---------+----------+

| 1 | 1 | 1 | 2 |

| 2 | 1 | 2 | 3 |

| 3 | 2 | 2 | 2 |

| 4 | 3 | 1 | 1 |

| 5 | 3 | 2 | 1 |

| 6 | 4 | 1 | 2 |

| 7 | 4 | 2 | 2 |

+----+--------+---------+----------+

提取什么:

对于每个orderer_id,number_of_order,total_quantity,total_price

+---------+-----------------+----------------+-------------+

| orderer | number_of_order | total_quantity | total_price |

+---------+-----------------+----------------+-------------+

| 53 | 2 | 9 | 250 |

| 54 | 2 | 4 | 440 |

+---------+-----------------+----------------+-------------+

目前的做法:

使用相关子查询

select orderer_id as orderer,

count(*) as number_of_order,

sum(select quantity from item_order where item_order.order_id = orders.id) as total_quantity,

sum(price) as total_price

from orders

order by orderer_id

可以通过将item_order与订单连接来解决吗?如果有,怎么样?

我想的另一种方法 –

>从订单中选择…

>从item_order中选择…

>根据应用层的要求进行组合和格式化

您可以假设,订单和item_order表会变得更大,哪种解决方案会更好?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值