CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

求一SQL查询语句(急!)

楼主cannyllf(某某某)2005-06-01 15:45:05 在 .NET技术 / ASP.NET 提问

有好几个表,比如:  
  表一:性别(性别代号       性别)两个字段  
  表二:学历(学历代号       学历)两个字段  
  表三:信息(姓名,性别代号,学历代号)而且这几个字段允许为空  
  我现在想得到这样的表  
  综合表(姓名,性别,学历)  
  应该怎么写SQL语句  
  问题点数:100、回复次数:25Top

1 楼sunjian_qi(sonne)回复于 2005-06-01 15:49:02 得分 10

select   t1.姓名,t2.性别,t3.学历  
  from   [信息]   t1  
  left   join   [性别]   t2   on   t2.[性别代号]=t1.[性别代号]  
  left   join   [学历]   t3   on   t3.[学历代号]=t1.[学历代号]Top

2 楼mao1997(xs)回复于 2005-06-01 15:51:44 得分 0

同意楼上Top

3 楼icedut(冰-装修准备中)回复于 2005-06-01 15:58:12 得分 0

表一:性别(性别代号       性别)两个字段  
   
  性别还要分一个表么  
  有点浪费啊  
  Top

4 楼Truly()回复于 2005-06-01 16:02:59 得分 0

现在科技发达了,性别的类型也就多了:DTop

5 楼brando_beat(Eの懒龙)回复于 2005-06-01 16:13:06 得分 0

select   c.姓名,a.性别,b.学历  
  from   性别   a,学历   b,信息   c  
  where   c.学历代号=b.学历代号   and   c.性别代号=a.性别代号  
   
  sql_server2000写法Top

6 楼zhangjianhong(独零)回复于 2005-06-01 16:14:27 得分 0

用点心学吧!  
  select   *   from   stud  
   
  Name               SexID             XueId              
  ----------   ----------   ----------    
  张三                   01                   01                  
  李花                   02                   03      
  --------------------------------------  
  ---------------------------------------  
  select   *   from   sex  
   
  sexID             sex                  
  ----------   ----------    
  01                   男                  
  02                   女            
  ----------------------------------------------  
  ----------------------------------------------  
   
  select   *   from   xue  
   
  XueId             XueLi              
  ----------   ----------    
  01                   专科              
  02                   本科              
  03                   硕士        
  ------------------------------------------------------  
  -----------------------------------------------------  
  -----------------------------------------------------  
  select   stud.[Name],sex,XueLi   From   stud,SEX,xue   where   stud.sexID=sex.SEXID   and   stud.XueId=xue.XueId    
   
  Name               sex                 XueLi              
  ----------   ----------   ----------    
  张三                   男                     专科              
  李花                   女                     硕士Top

7 楼chxljtt(浮云何时飞)回复于 2005-06-01 16:18:22 得分 0

select   c.姓名   as   姓名,a.性别   as   性别,b.学历   as   学历  
  from   性别   a,学历   b,信息   c  
  where   c.学历代号=b.学历代号   and   c.性别代号=a.性别代号  
  最简单的写法但是效率不高!Top

8 楼hulsq(小斌)回复于 2005-06-01 16:29:40 得分 10

select   x.姓名,(select   性别   from   性别   s   where   s.性别代号=x.性别代号)   as   性别,  
  (select   学历   from   学历   xl   where   xl.学历代号=x.学历代号)   as   学历   from   信息   x    
   
  可以采用以上这种子查询的方法,也可以采用左连接的的方法,不过要注意左连接是表的位置,最要不要才用内连接,如果有空值,将会丢失数据Top

9 楼lovefootball(蟑螂(生活就是扯淡--做人要放低姿态))回复于 2005-06-01 16:38:22 得分 0

楼上说的都可以,你随便找个就行了,  
  不过性别没必要再分表了吧?最多三种,男女未知,最多再来个阴阳人:D  
  呵呵,在程序里写case就可以了Top

10 楼liuyu202(学无止境)回复于 2005-06-01 16:39:38 得分 0

同意楼上!Top

11 楼luyanpeng(新手学习中....)回复于 2005-06-01 16:41:12 得分 10

select   t1.姓名,t2.性别,t3.学历  
  from   t4[信息]  
  INNER   JOIN   t1,t2,t3    
  ON   t4.[姓名代号]   =   t1.[姓名代号],t4.[性别代号]   =   t2.[性别代号],t4.[学历代号]   =   t3.[学历代号]  
   
  只列出关联字段!Top

12 楼leib_0474(夜之絮语)回复于 2005-06-01 16:54:18 得分 0

恩,不错不错。哈哈Top

13 楼icedut(冰-装修准备中)回复于 2005-06-01 17:03:54 得分 0

现在科技发达了,性别的类型也就多了:D  
   
   
  这句蛮有意思的  
  :)Top

14 楼icedut(冰-装修准备中)回复于 2005-06-01 17:05:51 得分 0

 
  随便找一句回复就能解决你的问题了  
   
  楼主结铁吧  
  不然大家该讨论性别表了   呵呵Top

15 楼chilin(永恒的月亮)回复于 2005-06-01 17:15:35 得分 0

如果性别代号和学历代号可以空的话只能用左联,1楼正解Top

16 楼Jeffeng(小峰)回复于 2005-06-01 17:26:09 得分 10

应当用:  
   
  select   t1.姓名,t2.性别,t3.学历  
  from   [信息]   t1  
  left   join   [性别]   t2   on   t2.[性别代号]=t1.[性别代号]  
  left   join   [学历]   t3   on   t3.[学历代号]=t1.[学历代号]  
   
  如果用:  
  select   c.姓名   as   姓名,a.性别   as   性别,b.学历   as   学历  
  from   性别   a,学历   b,信息   c  
  where   c.学历代号=b.学历代号   and   c.性别代号=a.性别代号  
   
  那么在[信息]表中,学历代号和性别代号为空的记录会丢失。Top

17 楼huwei2003(凡)回复于 2005-06-01 17:52:10 得分 10

select   t1.姓名,t2.性别,t3.学历  
  from   [信息]   t1  
  left   join   [性别]   t2   on   t2.[性别代号]=t1.[性别代号]  
  left   join   [学历]   t3   on   t3.[学历代号]=t1.[学历代号]  
  --------------------------------------------------------  
  select   t1.姓名,t2.性别,t3.学历  
  from   [信息]   t1  
  inner   join   [性别]   t2   on   t2.[性别代号]=t1.[性别代号]  
  inner   join   [学历]   t3   on   t3.[学历代号]=t1.[学历代号]  
  --------------------------------------------------------  
  Top

18 楼Truly()回复于 2005-06-01 20:36:19 得分 0

select   t1.姓名,  
  CASE   [性别代号]  
                    WHEN   '01'   THEN   '男'  
                    WHEN   '02'   THEN   '女'  
                    WHEN   '03'   THEN   '不男不女'  
                    WHEN   '04'   THEN   '半男半女'  
                    ELSE   '未知'  
    END   AS   性别,t3.学历  
  from   [信息]   t1  
  left   join   [学历]   t3   on   t3.[学历代号]=t1.[学历代号]  
  Top

19 楼Truly()回复于 2005-06-01 20:45:15 得分 0

楼主看清了,上面凡是inner   join的错,凡是一条select的错  
   
  一条select的条件应为  
  where   (   stud.XueId=xue.XueId   or   stud.XueId   is   null)Top

20 楼Truly()回复于 2005-06-01 20:46:03 得分 0

使用子查询的更是菜Top

21 楼pgy8288(Just Coding)回复于 2005-06-01 20:51:59 得分 0

看起来简单的,但是好象挺多分歧的哦  
  Top

22 楼microli(小李)回复于 2005-06-03 09:05:18 得分 50

利用左联是可以的,Top

23 楼yishan116(哈哈)回复于 2005-06-03 09:11:35 得分 0

就是连表咯,同意楼上的。。。。。。。。。。。。Top

24 楼TCat(蚊子)回复于 2005-06-03 09:12:11 得分 0

Truly(NULL)   写法很是友好的Top

25 楼ghchen()回复于 2005-06-03 09:12:23 得分 0

呵呵,学习.......Top

相关问题

  • 急求sql查询语句!
  • SQL查询语句
  • Sql 查询语句
  • SQL查询语句
  • sql语句查询
  • sql查询语句
  • sql查询语句
  • SQL查询语句
  • Sql查询语句
  • sql查询语句

关键词

  • 学历
  • 字段
  • 信息
  • 连接
  • sql
  • 代号
  • 性别
  • 姓名
  • xueid
  • 表

得分解答快速导航

  • 帖主:cannyllf
  • sunjian_qi
  • hulsq
  • luyanpeng
  • Jeffeng
  • huwei2003
  • microli

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo