日期:2014-05-18  浏览次数:20444 次

多表查询,返回主表的唯一信息
性别代码表
----------
id value
1 男
2 女

专业代码表
-----------
id value 
1 计算机
2 英语
3 日语

政治面貌代码表
----------
id value
1 无
2 团员
3 党员

主表
-----------
id name zzmmID(政治面貌ID) xbID(性别ID) zyID(专业ID)
1 xx 3 1 1


这三张表我想查出来之后只返回一条记录,里面显示ID,NAME,政治面貌的值,性别的值和专业的值
我用了DISTINCT和GROUPBY都不行,他都会返回好几条记录然后每个性别都要把所有的政治面貌啊性别啊什么的都对应一边
求解决方案,急!!!


------解决方案--------------------
select * from 主表 a
inner join 性别代码表 b on a.xbID=b.id
inner join 专业代码表 c on a.zyID=c.id
inner join 政治面貌代码表 d on a.zzmmID=d.id
------解决方案--------------------
探讨

select * from 主表 a
inner join 性别代码表 b on a.xbID=b.id
inner join 专业代码表 c on a.zyID=c.id
inner join 政治面貌代码表 d on a.zzmmID=d.id

------解决方案--------------------
SQL code

SELECT M.ID,name,A.value,B.value,C.value
FROM 主表 AS M INNER JOIN 政治 AS A ON M.zzmmID = A.id 
INNER JOIN 性别 AS B ON M.xbid = B.id
INNER JOIN 专业 AS C ON M.zyID = C.id

------解决方案--------------------
SQL code
select a.id,a.name,d.value as 政治面貌的值,b.value as 性别的值,c.value as 专业的值
from 主表 a
left join 性别代码表 b on a.xbID=b.id
left join 专业代码表 c on a.zyID=c.id
left join 政治面貌代码表 d on a.zzmmID=d.id

------解决方案--------------------
SQL code
select id, name, b.value,c.value,d.value from 主表
left join  性别代码表 b on a.xbID =b.id 
left join  政治面貌代码表 c on a.zzmmID =b.id 
left join  专业代码表 d on a.zyID =b.id