关于子查询和表连接查询的疑惑

关于子查询和表连接查询的疑惑

存在2张表user(用户) 和 user_dictionary(用户字典) 2张表,然后同事与我纠结一个问题,原谅我这渣渣不知道

相关代码

user:行业,职业,等级 等等多选择性属性
user_dictionary:类型,值,值名称

现在有2个sql,哪一个效率跟高

1:
select u.*,
(select ud.值名字 from user_dictionary ud where ud.类型='行业' and ud.值=u.行业) as '行业名称',
(select ud.值名字 from user_dictionary ud where ud.类型='职业' and ud.值=u.职业) as '职业名称',
(select ud.值名字 from user_dictionary ud where ud.类型='等级' and ud.值=u.等级) as '等级名称',
from user u

2:
select u.*,ud1.值名称,ud2.值名称,ud3.值名称
from user u 
left join user_dictionary ud1 on u.行业='设置的行业编号' and ud1.值=u.行业
left join user_dictionary ud2 on u.职业='设置的职业编号' and ud1.值=u.职业
left join user_dictionary ud3 on u.等级='设置的等级编号' and ud1.值=u.等级

我想知道推荐使用哪一种方式(我使用的方式1,同事属于那种死脑筋,完全坚持自己想法的人)


慕姐4208626
浏览 1060回答 1
1回答

胡说叔叔

哪个效率高,看一下执行时间就可以了么,然后explain一下看看。说点题外话:当你觉得你同事属于那种死脑筋,完全坚持自己想法的人的时候,或许他也这么想你呢,为什么一定要让别人按你的想法写代码呢?除非遇到了很严重的效率问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL