sql优化,多次left join同一张表问题?

1
这样一个问题, 比如我的表里面有 订单表,这个表里面含有买家和卖家,我有一个业务要查询他们详细的信息! 这个时候 我的sql 就是这样写
select * from
订单表 
left jojn 用户表 on 买家id=用户id 
left jojn 用户表 on 卖家id=用户id
这样就对 user表遍历了两次,尤其user表有点大的时候 就很夸张了,不知道这种sql可不可优化!
已邀请:
2

蓝心 2016-07-27 回答

如果你的订单表中的买家id和卖家id是两列的话,
select xxx
from 订单表 
left jojn 用户表 on 买家id =用户id or 卖家id=用户id
这样就可以了,另外用户表上的id列,一定要有索引
0

aibing - BI初学者 2016-07-27 回答

user表遍历了两次 ,这个说法不对吧,除非没有索引
0

- 取是能力,舍是境界 2016-07-27 回答

这个查询基于你数据库的设计就是这样。虽然你关联了两次用户表,实际上是买家一次卖家一次,如果你表中有标识可以区分出卖家和买家,可以在on后面加个过滤条件。
0

老头子 - 专注是唯一的捷径 2016-07-28 回答

先把你的表结构发一下
你的卖家/买家ID 是一个字段 还是俩字段 别用中文描述。
0

ldboyghg - 出入佳境 2016-08-09 回答

先把user表作处理,用户id  ,  max(买家id) ,max( 卖家id  ) group by 用户id
-1

tigerbigcat 2016-08-11 回答

处理下用户表,不要外连接,而使用索引,就可大幅度提高性能。

要回复问题请先登录注册