我在这里简明扼要地陈述我的问题,所以我只想举个例子 假设我有一个关于学生的DB2表:
Name Class Grade
Billy J Econ A
Sarah S Maths B
Greg X Computes A-
Billy J Maths D
Greg X Maths C+
我想找回那些同时拥有经济和数学的学生,并以这种方式展示信息:
Name Maths Grade Econ Grade
Billy J D A
我如何在世界上实现这一目标?
答案 0 :(得分:5)
此解决方案将解决您命名的两个类的问题:
SELECT Name, Math.Grade AS MathsGrade, Econ.Grade AS EconGrade
FROM Students Math INNER JOIN Students Econ ON Math.Name = Econ.Name
WHERE Math.Class = 'Maths' AND Econ.Class = 'Econ'
此解决方案唯一不做的是在派生列名称中包含空格。您可以通过在DB2用于标识符引号的任何字符中编写Maths Grade
和Econ Grade
来实现此目的。
要加入学生,必须同时拥有数学和经济学成绩。
答案 1 :(得分:0)
SELECT * from Students
where id in
(SELECT id from Students where Class = 'Econ')
AND id in
(SELECT id from Students where Class = 'Math');