日期:2014-05-19  浏览次数:20423 次

有关字典的SQL语句
有关字典的SQL语句如果有一个表,内容如下

基本情况表

      序号   姓名   性别   民族  
        1       张三     01       02  
        2       李四     02       05  


字典

类型   代码   值  
1           01     男  
1           02     女  
2           01     汉  
2           02     回  
2           03     蒙  
2           04     维  
2           05     苗  


要求一条sql语句返回如下表格

序号   姓名   性别   民族  
1         张三     男       回  
2         李四     女       苗  


这是我写的语句:select   序号,   xb.值,   mz.值   from   基本情况表,字典表   xb,   字典表   mz   where   类型= '1 '   and   性别   =   xb.值   and   类型= '2 '   and   民族   =   mz.值;

请问如何高效构造此SQL语句?



------解决方案--------------------
select a.序号, a.姓名,b.值 as 性别,c.值 as 民族
from 基本情况表 as a
inner join 字典 as b on a.性别=b.代码 and b.类型=1
inner join 字典 as c on a.民族=c.代码 and c.类型=2
------解决方案--------------------
用联接方法~~~
select a.序号, a.姓名,b.值 性别,c.值 民族
from 基本情况表 a
inner join 字典 b
on a.性别=b.代码 and b.类型=1
inner join 字典 c
on a.民族=c.代码 and c.类型=2

------解决方案--------------------
select a.序号, a.姓名,b.值 性别,c.值 民族
from 基本情况表 a
left outer join 字典 b
on a.性别=b.代码 and b.类型=1
left outer join 字典 c
on a.民族=c.代码 and c.类型=2
------解决方案--------------------
select a.序号, a.姓名,b.值 as 性别,c.值 as 民族
from 基本情况表 as a
inner join 字典 as b on a.性别=b.代码 and b.类型=1
inner join 字典 as c on a.民族=c.代码 and c.类型=2
------解决方案--------------------
表结构很烂