首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

数据库两个表联合查询,求好手解答.

2012-07-20 
数据库两个表联合查询,求高手解答.急急急A表:3711021994张三………………3711021989李四………………B表:3711021994男2

数据库两个表联合查询,求高手解答.急急急
A表:

3711021994 张三 ………………
3711021989 李四 ………………

B表:

3711021994 男 2008毕业 2012.06.27
3711021994 女 2010毕业 2012.06.28



联合查询
3711021994 张三 男 2010毕业
3711021989 李四 NULL NULL


[解决办法]
select * from A表 left join B表 on A表.[学号?] = B表.[学号?]
[解决办法]
只能说你数据的插入有问题,如果真的是相同数据,原本就不该入库,3711021994这种编号应该是一对一的,即便出现两个张三(一男一女),那么也应该是出现在A表,而不是B表,设计有问题
[解决办法]

探讨
引用:

select * from A表 left join B表 on A表.[学号?] = B表.[学号?]


那会出现重复数据的
3711021994 张三 男 2010毕业
3711021994 张三 男 2008毕业
3711021989 李四 NULL NULL

[解决办法]
select a.*,b.* from A表 as a inner join B表 as b on a.学号=b.学号
[解决办法]
无论做什么,都应该看到事情的本质和源头,一些数据本来就是不可能存在的或者毫无意义的,那么应当控制良好的输入,而不是处理繁杂的输出,这么对于查询来说也是见好事.
[解决办法]
查询结果:有问题啦~2010年毕业的是个女的 怎么还显示是个男
[解决办法]
select *,(select top 1 sex from tblB where aid=tblA.id order by 主键 desc) as 性别,*,(select top 1 毕业日期 from tblB where aid=tblA.id order by 主键 desc) as 毕业日期 from tblA

热点排行