首页 新闻 会员 周边 捐助

sql关联三个表查询问题

0
[已解决问题] 解决于 2016-01-14 14:40

表a和表b 通过两个查询分别得到以下两组数据

1,select e.code ,e.name from code d,name e where e.id=d.id and e.type="球类"

2,select e.code ,e.name from code d,name e where e.id=d.id and e.type="棋类"

code  name
01     足球
02     篮球
03     羽毛球
code  name 
101   围棋
102   象棋
103   五子棋

 表c 学生表 字段如下

学号 姓名 …… 喜欢的球类运动  喜欢的棋类运动
1    张三      01                         101

如何关联表a表b查询学生表 并显示的正确球类运动,棋类运动

伊夏丶的主页 伊夏丶 | 初学一级 | 园豆:9
提问于:2016-01-08 15:59
< >
分享
最佳答案
0

使用左连接查询

伊夏丶 | 初学一级 |园豆:9 | 2016-01-14 14:40
其他回答(2)
0

select 学号 姓名 …… 喜欢的球类运动 喜欢的棋类运动

from students s

inner join (select e.code ,e.name from code d,name e where e.id=d.id and e.type="球类") as t1

on s.喜欢的球类运动 = t1.code

inner join (select e.code ,e.name from code d,name e where e.id=d.id and e.type="棋类") as t2

on s.喜欢的棋类运动 = t2.code

试试这样

_天光云影 | 园豆:70 (初学一级) | 2016-01-08 16:35

报错缺少关键字

支持(0) 反对(0) 伊夏丶 | 园豆:9 (初学一级) | 2016-01-08 17:47

@伊夏丶: ...报的什么错?解决了吗?

支持(0) 反对(0) _天光云影 | 园豆:70 (初学一级) | 2016-01-09 09:27

@_天光云影:  应该是你写的派生表没取别名。你写的派生表应该都是没有列名的,使用派生表应该要保证派生表的完整性,派生表中的列名一定要去别名

select 学号 姓名 …… 喜欢的球类运动 喜欢的棋类运动

from students s

inner join (select e.code as 球的编号 ,e.name as 球的名字 from code d,name e where e.id=d.id and e.type="球类") as t1

on s.喜欢的球类运动 = t1.球的编号

inner join (select e.code as 棋的编号 ,e.name  as 棋的名字 from code d,name e where e.id=d.id and e.type="棋类") as t2

on s.喜欢的棋类运动 = t2.棋的编号

这样应该可以了

支持(0) 反对(0) 李勇的博客 | 园豆:204 (菜鸟二级) | 2016-01-10 04:54
0

你这样写表名头不晕吗

jasondyoung | 园豆:424 (菜鸟二级) | 2016-01-08 19:05

不是我建的 --

支持(0) 反对(0) 伊夏丶 | 园豆:9 (初学一级) | 2016-01-09 11:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册