求一条SQL语句的写法(50分)

  • 主题发起人 steven7581
  • 开始时间
S

steven7581

Unregistered / Unconfirmed
GUEST, unregistred user!
我在进行一个MIS系统的开发时,有一个问题一直没有解决好。
问题如下:
我有三个表结构
1  ID  姓名   2  ID  年级   3  ID  选修课
   01  张三     01  D02      03  法语
   02  李四     02  D02
   03  王五     03  D02
我从以上这三个表中,我想得到下面这个表
  ID  姓名  年级  选修课
  01  张三  D02
  02  李四  D02
  03  王五  D02   法语
我现在是用内存表,将数据载入后,遍历所有数据后,才可生成,但速度太慢。我想用一个SQL语句求到这个表。请问有什么好的方法没?
分不够可以再加
 
D

ddzhouqian

Unregistered / Unconfirmed
GUEST, unregistred user!
union可以实现的
 

月冷无痕

Unregistered / Unconfirmed
GUEST, unregistred user!
select a.Id ,a.姓名,b.年级,c.选修课 from (表1 a left join 表2 b on a.Id = b.id) left join 表3 c on a.Id = c.Id where ....
 

流水先生

Unregistered / Unconfirmed
GUEST, unregistred user!
同意思楼上
 
E

eggvstone

Unregistered / Unconfirmed
GUEST, unregistred user!
select table1.Id, 姓名,年级,选修课 from table1 left join table2 on table1.Id=table2.Id left join table3 on table1.Id=table3.Id
 
S

steven7581

Unregistered / Unconfirmed
GUEST, unregistred user!
月冷无痕:
你的方法,只能得到下表
ID  姓名  年级  选修课
  03  王五  D02   法语
不是我想要的啊
 
L

liang990711

Unregistered / Unconfirmed
GUEST, unregistred user!
没办法,你把2表和3表合并成一个表不就 好多了吗?
1  ID  姓名   2  ID  年级  选修课
   01  张三     01  D02   法语
   02  李四     02  D02
   03  王五     03  D02
 
J

Johnny_du

Unregistered / Unconfirmed
GUEST, unregistred user!
对!用Union试试看
 

海皇

Unregistered / Unconfirmed
GUEST, unregistred user!
表3只有一条记录,没有id=1和2的记录吧!
 
1

19801125w

Unregistered / Unconfirmed
GUEST, unregistred user!
1、
select d.id,d.姓名 ,b.年级,d.选修课 from (select a.*,c.选修课 from table1 a left join table3 c on a.id = c.id ) d ,table3 b
where d.id = b.id
2、
select a.id,a.姓名 ,b.年级, c.选修课 from b join (a left join c on a.id = c.id ) on b.id = a.id
3、
select a.id,a.姓名 ,b.年级, c.选修课 from b , (a left join c on a.id = c.id ) where b.id = a.id
1中如果你的1表和2表也不是一一对应关系,那么可以将上面语句改成 d left join table3 b
on d.id = b.id
2、3中自己修改一下表名
 
H

hwh6666

Unregistered / Unconfirmed
GUEST, unregistred user!
select A.ID,A.姓名,B.年級,C.選修課 from 1 A LEFT JOIN 2 B ON A.ID=B.ID LEFT JOIN 3 C ON A.ID=C.ID
 
S

steven7581

Unregistered / Unconfirmed
GUEST, unregistred user!
感谢19801125w,你写的第二条语句,我测试是正确的,谢谢!
 

Similar threads

D
回复
0
查看
782
DelphiTeacher的专栏
D
D
回复
0
查看
735
DelphiTeacher的专栏
D
D
回复
0
查看
726
DelphiTeacher的专栏
D
顶部