有两个表A和B是多对多的关系,引入了一个中间表AB,外键是AID和BID,现在我要通过AID取B表中对应的数据,这个sql怎么写比较好
------解决方案--------------------
select a.* , b.* from a, b, ab
where a.id = ab.aid and ab.bid = b.id
------解决方案--------------------
给出一个多对多的经典例子,学生(A) 与 课程(B),得分则为AB表
- SQL code
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>