合并SQL视图

合并SQL视图,sql,Sql,我在一所大学的IT部门工作,作为一名学生工作者,在使用SQL方面的知识非常有限(我不是主修计算机科学/工程)。我会尽我最大的努力来描述我想在这里完成什么 我想创建一个包含新生信息的表格,基本上包括:id、名字、姓氏、需要考试(Y/N)、课程101部分、讲师 我的问题是,交换生和转学生以及一些一年级学生不必/没有报名参加课程101,因此使用WHERE student_course='Course101%'将忽略这些学生。我想在我的视图中选择这些学生,并将他们的课程101部分,讲师值显示为空 我正在

我在一所大学的IT部门工作,作为一名学生工作者,在使用SQL方面的知识非常有限(我不是主修计算机科学/工程)。我会尽我最大的努力来描述我想在这里完成什么

我想创建一个包含新生信息的表格,基本上包括:id、名字、姓氏、需要考试(Y/N)、课程101部分、讲师

我的问题是,交换生和转学生以及一些一年级学生不必/没有报名参加课程101,因此使用
WHERE student_course='Course101%'
将忽略这些学生。我想在我的视图中选择这些学生,并将他们的课程101部分,讲师值显示为空

我正在考虑提出两种观点,一种是针对所有新生,另一种是针对只上101课程的学生,并进行某种合并/合并,但不确定如何实际做到这一点


任何帮助都将不胜感激

目前的表格实际上是什么样子仍然有点模糊,因此很难给出好的建议

根据您给我们的信息,我建议研究一个
左Inner联接
,它将
NULL
放在两个表不重叠的地方


如果您对学习数据库设计感兴趣(而不仅仅是解决这个特定问题),我建议您研究正确的数据库设计。

创建两个查询。一个用于101名学生,一个用于海外/转学(您需要计算WHERE子句是否适用) 让每一个都让你满意

如果除WHERE条款外,所有内容均相同,则: 然后获取每个查询的条件,将它们用括号括起来,在它们之间加上OR,并将其放入一个查询中 比如:

SELECT Name, Id,ShoeSize
FROM Students   
WHERE (studnt_course = 'Course101%') OR (transferred = 1 OR is_exchange = 1)
i、 因此所有学生的
WHERE或
都是正确的

其他方面(例如,使用不同的表格): 确保在SELECT语句中选择的列名相同 如果一列的信息相同,但调用的内容不同,您可以:

 <columnName> AS <NameYouWantToCallIt>

不知道怎么做什么?制作视图或将其与
union
组合?请回答您的问题,并添加表架构、示例数据和所需输出来说明您的问题。我对任何方法都很满意。我只是想找出一个算法。同样,我想在这里完成的事情是挑选没有课程101的学生,并将他们的讲师和部分值显示为Null。另外,您使用的是哪种DBMS?博士后?甲骨文?谢谢你的建议,贾巴贝鲁!我最终发现,在这种情况下,由于数据和表的结构,完全外部连接可以工作。
SELECT Name, Id, ShoeSize
FROM Students   
WHERE studnt_course = 'Course101%'

UNION

SELECT Name, Id, FootSize AS ShoeSize
FROM exchangeStudents   
WHERE transferred = 1 OR is_exchange = 1