多表查询?大家一般怎么用的?效率问题真的需要考虑吗?
程序员文章站
2022-06-08 11:37:06
...
【Order】表(OrderID,OrderDate,CustomerID)
【Customer】表(CustomerID,CustomerName,CustomerAddr,CustomerCity)
【Customer】表(CustomerID,CustomerName,CustomerAddr,CustomerCity)
能给个案例代码吗?如何实现关联查询?
比如我要查询属于 订单ID1的顾客信息。求tp代码
回复内容:
【Order】表(OrderID,OrderDate,CustomerID)
【Customer】表(CustomerID,CustomerName,CustomerAddr,CustomerCity)
能给个案例代码吗?如何实现关联查询?
比如我要查询属于 订单ID1的顾客信息。求tp代码
题主的问题提得比较模糊,没有给出两张表的数量级以及order表和cumstomer表的关系(是一对多还是多对多),这里给出几点建议吧(以mysql作为数据库软件,以下都此为基础):
- 多表查询的效率和所选用的数据库软件,表数据量级,业务的使用场景,查询方法等都有关系,在考虑效率之前,我们可以先问自己:在现有的业务场景以及表数据量级下,最简单的多表关联查询(join方式)效率是否已经满足需求?如果答案是肯定的话,就不要过度设计了。
- 当多表关联查询(join方式)效率无法满足业务需求时,常见的方法有:分成两次单表查询,优点:不会引起锁表和使用临时表,缺点:实现逻辑教复杂;order表冗余部分customer表数据,优点:多表查询问题简化为单表查询,缺点:数据有冗余以及更新逻辑复杂。
下一篇: Oracle PL/SQL基础 游标