读书人

有关字典的SQL语句,该怎么解决

发布时间: 2012-01-05 22:36:54 作者: rapoo

有关字典的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
[解决办法]
表结构很烂

读书人网 >SQL Server

热点推荐