当前位置: 代码迷 >> Sql Server >> sql 多表连表查询解决思路
  详细解决方案

sql 多表连表查询解决思路

热度:77   发布时间:2016-04-24 09:24:53.0
sql 多表连表查询
本帖最后由 xiao_ziyao 于 2015-01-05 10:24:15 编辑
我这有三张表

A表 用户编号 用户姓名 性别 民族


B表 编号 用户编号 教育类别 学历名称 学位名称 学校代码 学校名称 所学专业 所学专业类别 毕业日期

C表 学校代码 学校名称 学校类别 是否211 是否985
 
要求显示以下信息
A.用户编号 A.用户姓名 A.性别 B.教育类别 C.学校类别 C.是否211 C.是否985

现在问题是查询语句关联了学校代码表,有些学校代码不存在所以显示的信息与实际情况不符
------解决思路----------------------

select a.用户编号,
a.用户姓名,
a.性别,
b.教育类别,
c.学校类别,
c.是否211,
c.是否985
from A表 a
inner join B表 b
on a.用户编号=b.用户编号
left join C表 c
on b.学校代码=c.学校代码

与实际不符就往表里插正确数据 表里具体数据缺少或不对这个没办法解决 
------解决思路----------------------
嗯,你可以试试

另外,现在一看,我的第一个写法是错的~~
已修改
SELECT A.用户编号,A.用户姓名,A.性别,B.教育类别,C.学校类别,C.是否211,C.是否985
FROM A LEFT JOIN B ON A.用户编号=B.用户编号
    LEFT JOIN C ON B.学校代码=C.学校代码 OR((B.学校代码 IS NULL OR B.学校代码='')AND B.学校名称=C.学校名称)


你可以说说,如果学校代码对不上,你想用哪个列来替代关联
  相关解决方案