具有空值的特定MYSQL视图

时间:2013-12-12 22:03:26

标签: mysql view null

我无法为我的一个MYSQL分配创建视图。我理解如何在技术上创建一个视图,就像在命令中一样。 (我已经为这个任务做了一些其他不同的观点)我的问题是如何设计这个特定的视图......我不知道如何掌握我的知识/我设计表格的方式。

所以,我有2个相关的表格(还有2个其他表,但我不认为这个问题需要它们):出席和学者。我需要创建一个视图,列出所有学者以及他们是受邀演讲者的日期。但是,如果它们从不是受邀发言者,则日期应显示空值。所以我需要从学者中选择名字和姓氏,并从出勤中选择。出勤有AttendanceType列,可以是邀请演讲者或主席。出勤也有外键LName,与LastName有关,显然也有ADate。我不能在概念上想到必须这样做,我认为使用一个我不是经验丰富的连接将是正确的选择,但它不起作用...

这是我的尝试

CREATE VIEW InvitedScholars
AS SELECT FirstName,LastName,ADate
FROM Scholar LEFT JOIN Attendance ON AttendanceType='Invited Speaker'
WHERE Lname=LastName;

这只给了我邀请演讲者,而不是所有学者......我不知道如何进步......任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:0)

看来你有你的联接和哪些条款混淆了。您想加入姓氏上的两个表(如果您有两个具有相同姓氏的扬声器则会引发另一个问题)并按AttendanceType进行过滤

FROM Scholar LEFT JOIN Attendance ON Lname=LastName
WHERE AttendanceType='Invited Speaker'

答案 1 :(得分:0)

您需要在姓氏上进行左连接(假设这是两个表上的键)。请参阅下面的SQL:

CREATE VIEW InvitedScholars
AS SELECT FirstName,LastName,ADate
FROM Scholar LEFT JOIN Attendance ON Scholar.LastName = Attendance.LName
AND Attendance.AttendanceType = 'Invited Speaker';