查找字段的SQL怎么写?

ddr527 2009-05-04 09:53:28
Delphi里有lookup字段,但SQL语法里没找到对应的方法。请问怎么实现。
有两个表
表一:学生表
编号 姓名 班级编号
1 张三 1
2 李四 1
3 王五 2

表二:班级类别
编号 名称 分科
1 高三3班 文
2 高二1班 理
3 高二2班 理

现在希望得到如下表:
编号 姓名 班级编号 分科
1 张三 1 文
2 李四 1 文
3 王五 2 理

SQL语句该如何写?
...全文
166 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuguanlin 2009-05-05
  • 打赏
  • 举报
回复
up
--小F-- 2009-05-05
  • 打赏
  • 举报
回复
select a.*,b.分科
from 学生表 as a
join 班级类别 as b
on a.班级编号=b.编号
ch315537 2009-05-05
  • 打赏
  • 举报
回复

select 学生表.*,班级类别.分科
from 学生表
join 班级类别
on 学生表.班级编号=班级类别.编号

或者是

select 学生表.*,班级类别.分科
from 学生表,班级类别
where 学生表.班级编号=班级类别.编号



capflovetsql 2009-05-05
  • 打赏
  • 举报
回复
应该多看研究一下SQL命令哟!

select
xs.*,
bj.分科
from
学生表 xs join 班级类别 bj
on xs.班级编号=bj.编号


w11x22b33 2009-05-04
  • 打赏
  • 举报
回复
joogle收索: join ,left join ,right join
mylongger 2009-05-04
  • 打赏
  • 举报
回复
8楼说的对,呵呵呵~~~
greymouseyu 2009-05-04
  • 打赏
  • 举报
回复
全都对,可以结贴了楼主
百年树人 2009-05-04
  • 打赏
  • 举报
回复
select 
a.*,
b.分科
from
学生表 a
left join
班级类别 b
on
a.班级编号=b.编号

ws_hgo 2009-05-04
  • 打赏
  • 举报
回复
if object_id('[学生表]') is not null drop table [学生表] 
go
create table [学生表]([编号] int,[姓名] varchar(10),[班级编号] int)
insert [学生表] select 1,'张三',1
union all select 2,'李四',1
union all select 3,'王五',2

if object_id('[班级类别]') is not null drop table [班级类别]
go
create table [班级类别]([编号] int,[名称] varchar(10),[分科] varchar(10))
insert [班级类别] select 1,'高三3班','文'
union all select 2,'高二1班','理'
union all select 3,'高二2班','理'

select X.*,B.[分科] from [学生表] X join [班级类别] B on X.[班级编号]=B.[编号]
编号 姓名 班级编号 分科
----------- ---------- ----------- ----------
1 张三 1 文
2 李四 1 文
3 王五 2 理

(3 行受影响)
ws_hgo 2009-05-04
  • 打赏
  • 举报
回复
if object_id('[学生表]') is not null drop table [学生表] 
go
create table [学生表]([编号] int,[姓名] varchar(10),[班级编号] int)
insert [学生表] select 1,'张三',1
union all select 2,'李四',1
union all select 3,'王五',2

if object_id('[班级类别]') is not null drop table [班级类别]
go
create table [班级类别]([编号] int,[名称] varchar(10),[分科] varchar(10))
insert [班级类别] select 1,'高三3班','文'
union all select 2,'高二1班','理'
union all select 3,'高二2班','理'

select X.*,B.[分科] from [学生表] X join [班级类别] B on X.[班级编号]=B.[编号]
htl258_Tony 2009-05-04
  • 打赏
  • 举报
回复
if object_id('[学生表]') is not null drop table [学生表] 
go
create table [学生表]([编号] int,[姓名] varchar(10),[班级编号] int)
insert [学生表] select 1,'张三',1
union all select 2,'李四',1
union all select 3,'王五',2

if object_id('[班级类别]') is not null drop table [班级类别]
go
create table [班级类别]([编号] int,[名称] varchar(10),[分科] varchar(10))
insert [班级类别] select 1,'高三3班','文'
union all select 2,'高二1班','理'
union all select 3,'高二2班','理'

select a.*,b.分科
from 学生表 a
join 班级类别 b
on a.班级编号=b.编号
/*
编号 姓名 班级编号 分科
----------- ---------- ----------- ----------
1 张三 1 文
2 李四 1 文
3 王五 2 理

(3 行受影响)
*/
--另一种方法:
select *,分科=(select 分科 from 班级类别 where 编号=t.班级编号) from [学生表] t
/*
编号 姓名 班级编号 分科
----------- ---------- ----------- ----------
1 张三 1 文
2 李四 1 文
3 王五 2 理

(3 行受影响)
*/
you_tube 2009-05-04
  • 打赏
  • 举报
回复
select a.*,b.分科
from 学生表 a
,班级类别 b
where a.班级编号=b.编号

lg3605119 2009-05-04
  • 打赏
  • 举报
回复

select a.*,b.分科
from 学生表 a
,班级类别 b
where a.班级编号=b.编号
htl258_Tony 2009-05-04
  • 打赏
  • 举报
回复
select a.*,b.分科
from 学生表 a
join 班级类别 b
on a.班级编号=b.编号

34,590

社区成员

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

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