初学,两个小问题

住楼上的老丁 2003-05-10 04:01:28
1、sql语句问题,
三个表分别为member,degree,major,member中的degree1、major1和degree2、major2字段保存着degree和major的外键,degree和major中存的是名称。
想用sql 语句直接将member中的degree1、major1和degree2、major2的名称显示出来,于是写一sql语句:
select member.id,degree.name as degree1,major.name as major1,degree.name as degree2,major.name as major2 from member,degree,major where degree.id=member.degree1 and major.id=member.major1
还要把degree2和major2的名称显示出来我就不会往上加了。
2、sql表中某一字段什么也不存有时里头什么也没有,有时是<null>是怎么回事?我想都什么都没有,应该怎么做?
...全文
38 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
boat2002w 2003-05-24
  • 打赏
  • 举报
回复
先查一个degree,major 取出来做一个变量,再查另一个,然后在写入最后结果中去
住楼上的老丁 2003-05-11
  • 打赏
  • 举报
回复
不行阿,就是member,degree,major 三个表 用你这个
select a.id,
(select b.name from degree b where a.id=b.id) as degree1,
(select c.name from major c where a.id=c.id) as major1
(select b.name from degree b where a.id=b.id) as degree2,
(select c.name from major c where a.id=c.id) as major2
from member a
分析器说from附近有错误.


不过我不明白你的
中degree.name as degree1和degree.name as degree2显示的数据有什么不同
数据类型是一样的,member表中考虑一个人可能有两个学历或专业,

住楼上的老丁 2003-05-11
  • 打赏
  • 举报
回复
还是不对,说是子查询返回的值多于一个,当子查询跟随在=、!=、>=、<=,<,>,或子查询用作表达式时这种情况是不允许的,该怎么办?
psxfghost 2003-05-11
  • 打赏
  • 举报
回复
select a.id,
(select b.name from degree b where a.id=b.id) as degree1,
(select c.name from major c where a.id=c.id) as major1,
(select b.name from degree b where a.id=b.id) as degree2,
(select c.name from major c where a.id=c.id) as major2
from member a

呵呵,漏了一个逗号!
psxfghost 2003-05-10
  • 打赏
  • 举报
回复
select a.id,
(select b.name from degree b where a.degree1=b.id) as dname1,
(select c.name from major c where a.major1=c.id) as mname1
(select d.name from degree d where a.degree2=d.id) as dname2,
(select e.name from major e where a.major2=e.id) as mname2
from member a
angelwa 2003-05-10
  • 打赏
  • 举报
回复
up!
psxfghost 2003-05-10
  • 打赏
  • 举报
回复
这样对吗??
select member.id,
(select b.name from degree b where a.degree1=b.id) as dname1,
(select c.name from major c where a.major1=c.id) as mname1
(select b.name from degree b where a.degree2=b.id) as dname2,
(select c.name from major c where a.major2=c.id) as mname2
from member a
psxfghost 2003-05-10
  • 打赏
  • 举报
回复
select a.id,
(select b.name from degree b where a.id=b.id) as degree1,
(select c.name from major c where a.id=c.id) as major1
(select b.name from degree b where a.id=b.id) as degree2,
(select c.name from major c where a.id=c.id) as major2
from member a

不过我不明白你的
select member.id,degree.name as degree1,major.name as major1,degree.name as degree2,major.name as major2 from member,degree,major where degree.id=member.degree1 and major.id=member.major1
中degree.name as degree1和degree.name as degree2显示的数据有什么不同
psxfghost 2003-05-10
  • 打赏
  • 举报
回复
用外关联若关联不上,对应的关联数据就会为NULL

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧