在SQL中如何进行多表查询

来源:百度知道 编辑:UC知道 时间:2024/06/01 08:56:09
有几种方法!如何进行查询,不容易出错?

交叉关联:
SELECT * FROM table1 CROSS JOIN table2 CROSS JOIN table3 WHERE ...;
SELECT * FROM table1, table2, table3 WHERE...;
SELECT * FROM table1 JOIN table2 JOIN table3 WHERE ...;
左右关联:
SELECT * FROM table1 LEFT JOIN table2 ON table1.feild = table2.feild WHERE ...;
SELECT * FROM table1 RIGHT JOIN table2 ON table1.feild = table2.feild WHERE ...;

要想多表查询,是有条件的。一般是几张表结构相似或者是有一样的ID号关联。例如:
select * from 表1,表2,表3 这是把3张表结果全部查出来
select * from 表1 where not exists(select 0 from 表2 where
表1.id=表2.id)

可以考虑left join ... on(左连接),
cross join ...on(外连接),
inner join ...on(内连接),
right join ...on(右连接).
等等的连接,要是想知道具体的语法可以参考SQL2000帮助!

下面通过一个简单的学生成绩管理数据库为例说明。
1 建立数据库
1)建立学生表(关键字为学生编号+课程编号);
2)建立课程表(关键字为课程编号);
3)建立考试表(关键字为学生编号+课程编号);
2 简单查询
1)查询学生选课:Select 学生姓名,课程名称 From 学生表,课程表 Where 学生表.课程编号 = 课程表.课程编号
2)查询学生成绩:Select 学生姓名,课程名称,考试成绩 Where 学生表.