有两个表A和B是多对多的关系,引入了一个中间表AB,外键是AID和BID,现在我要通过AID取B表中对应的数据,这个sql怎么写比较好
解决方案 »
- Oracle 11g 链接服务器 sqlserver2008 两个DB
- 请教一个oracle查询的问题。谢谢
- 如何实现SQL的轮流显示
- 如果将DBA角色赋予某个用户?
- oracle 9i 在安装到Oracle Database Configuration assistant....的时候装不下去了,等了2个小时没有反应,也没有错误提示?请教大侠是怎
- am,pm to_date的问题
- 在Oracle里,varchar2类型的长度能否自动增加
- 这个触发器要怎么写???
- oracle9i客户端为什么连接oracle8.05服务器行,但连接oracle9i反而不通?
- developer 6.0 连接到linux后台oracle服务器问题,请指教-----在线等待
- 使用JAVA调用存储过程,使用ParameterMetaData报错,请高手指点
- 求高手解决SQL查询问题,求通用语句(支持oracle和sqlserver)
where a.id = ab.aid and ab.bid = b.id
SQL> select * from student;
SID SNAME
---------- --------------------
1 张三
2 李四
3 王武
SQL> select * from course;
CID CNAME
---------- --------------------
11 语文
12 数学
13 英语
SQL> select * from score;
SCID SID CID SCORE
---------- ---------- ---------- ----------
111 1 11 80
112 1 12 78
113 1 13 90
114 2 11 82
115 2 12 66
116 2 13 92
117 2 11 78
118 2 12 84
119 2 13 80
9 rows selectedSQL> SELECT S.SID, S.SNAME, C.CNAME, SC.SCORE
2 FROM STUDENT S, --学生表
3 COURSE C, --课程表
4 SCORE SC --得分表
5 WHERE S.SID = SC.SID
6 AND SC.CID = C.CID;
SID SNAME CNAME SCORE
---------- -------------------- -------------------- ----------
2 李四 语文 78
2 李四 语文 82
1 张三 语文 80
2 李四 数学 84
2 李四 数学 66
1 张三 数学 78
2 李四 英语 80
2 李四 英语 92
1 张三 英语 90
9 rows selected
SQL>
SQL> select * from student;
SID SNAME
---------- --------------------
1 张三
2 李四
3 王武
SQL> select * from course;
CID CNAME
---------- --------------------
11 语文
12 数学
13 英语
SQL> select * from score;
SCID SID CID SCORE
---------- ---------- ---------- ----------
111 1 11 80
112 1 12 78
113 1 13 90
114 2 11 82
115 2 12 66
116 2 13 92
117 2 11 78
118 2 12 84
119 2 13 80
9 rows selectedSQL> SELECT S.SID, S.SNAME, C.CNAME, SC.SCORE
2 FROM STUDENT S, --学生表
3 COURSE C, --课程表
4 SCORE SC --得分表
5 WHERE S.SID = SC.SID
6 AND SC.CID = C.CID;
SID SNAME CNAME SCORE
---------- -------------------- -------------------- ----------
2 李四 语文 78
2 李四 语文 82
1 张三 语文 80
2 李四 数学 84
2 李四 数学 66
1 张三 数学 78
2 李四 英语 80
2 李四 英语 92
1 张三 英语 90
9 rows selected
SQL>
SCID SID CID SCORE
---------- ---------- ---------- ----------
111 1 11 80
112 1 12 78
113 1 13 90
114 2 11 82
115 2 12 66
116 2 13 92
117 3 11 78
118 3 12 84
119 3 13 80
9 rows selected
SQL>
SQL> SELECT S.SID, S.SNAME, C.CNAME, SC.SCORE
2 FROM STUDENT S, --学生表
3 COURSE C, --课程表
4 SCORE SC --得分表
5 WHERE S.SID = SC.SID
6 AND SC.CID = C.CID
7 ORDER BY 1,3;
SID SNAME CNAME SCORE
---------- -------------------- -------------------- ----------
1 张三 数学 78
1 张三 英语 90
1 张三 语文 80
2 李四 数学 66
2 李四 英语 92
2 李四 语文 82
3 王武 数学 84
3 王武 英语 80
3 王武 语文 78
已知中间表order ID : 6, 7 查出订单对应的货物信息
select * from product p where p.id in (6,7)
/////////////////////////////////////////////
附:联合查询order & product 信息
select o.id,o.name,p.id,p.name from order o ,product p ,order_product op where o.id = op.oid and p.id=op.pid;