日期:2014-05-16  浏览次数:20794 次

SQL查询语句求助
有两个表,
一个表放学生的一般信息,比如,姓名(唯一不重复)、年龄、性别、籍贯。

张三 20岁 男 北京
李四 21岁 男 天津
王五 20岁 女 上海

另一个表放学生的选修课程情况(每个学生选修科目和数量都不一定相同),比如姓名,学科,分数
张三 语文 90分
张三 数学 80分
李四 数学 70分
李四 英语 60分
李四 地理 90分
王五 语文 90分
王五 历史 80分

我想查询的结果是,既选修了语文,又选修了数学的同学的基本信息(姓名、年龄、性别、籍贯),当如何写?
谢谢!

先帮我看看这么写问题在哪?执行不了

SELECT T1.姓名,T1.年龄,T1.性别,T1.籍贯 FROM 学生的一般信息 AS T1
  INNER JOIN 学生的选修课程 AS T2 ON T2.姓名 = T1.姓名
  INNER JOIN 学生的选修课程 AS T3 ON T3.姓名 = T1.姓名
  WHERE T2.学科 = '语文' AND T3.学科 = '数学' 

谢谢!

------解决方案--------------------
SQL code
SELECT T1.姓名,T1.年龄,T1.性别,T1.籍贯 
FROM (学生的一般信息 AS T1
 INNER JOIN 学生的选修课程 AS T2 ON T2.姓名 = T1.姓名)
 INNER JOIN 学生的选修课程 AS T3 ON T3.姓名 = T1.姓名
WHERE T2.学科 = '语文' AND T3.学科 = '数学'