FULL OUTER JOIN returns 来自外键的 NULL 值 table
FULL OUTER JOIN returns NULL values from foreign keys table
我正在开发一个名为 "ExaminationDB_Test" 的数据库。目标是管理学生考试数据。但是,在进入考试系统之前,我们需要管理学生的基本数据,例如 Class、部门、组等
我制作了以下表格:
- 学生(包含学生数据)
- Class(包含 Classes)
- 群组(包含群组)
- 章节(包含章节)
- PrimaryData(包含所有这些表的外键)
这是表格设计:
学生:
Class:
群组
栏目
主要数据:
这些表中的数据:
学生:
Class:
群组:
栏目:
PrimaryData:(它是空的,因为这些都是上表的外键!)
数据库图表:
这里的目标是Select 学生的所有数据使用学生名册号。
我已经为它尝试了以下查询:
SELECT * FROM Student Full Outer Join PrimaryData ON PrimaryData.StuID=Student.StuRollNo where Student.StuRollNo='1001';
SELECT * FROM Student Join PrimaryData ON PrimaryData.StuID=Student.StuRollNo where Student.StuRollNo='1001';
内容如下 Returns:
输出必须有组名称,Class名称和部分名称!
I have tried most of the Solutions Available on Whosebug regarding JOINS
But this result always has been the same.
请帮我解决这个问题!
我看到 StuRollNo 是整数,但你把 '1001' 作为字符串。
PrimaryData table 正在映射 table 学生和部门,class 和基于您的 ERD 的小组。在 primarydata 中没有数据的情况下,您如何期望学生的部分、class 和组数据?
将记录插入主数据 table。这对你有用。
insert into primarydata values (1001,'FSC1',1001,'Engg')
添加此条目后,然后修改您的查询并添加部分,class 和组主 tables 以获取名称。
SELECT * FROM Student cross Join PrimaryData ON PrimaryData.StuID=Student.StuRollNo where Student.StuRollNo='1001';
select E.*
FROM Student E
CROSS JOIN PrimaryData P
WHERE P.StuID = E.StuRollNo
and E.StuRollNo = '1001'
由于列之间没有匹配,尝试使用显式连接,如左外连接。
我正在开发一个名为 "ExaminationDB_Test" 的数据库。目标是管理学生考试数据。但是,在进入考试系统之前,我们需要管理学生的基本数据,例如 Class、部门、组等
我制作了以下表格:
- 学生(包含学生数据)
- Class(包含 Classes)
- 群组(包含群组)
- 章节(包含章节)
- PrimaryData(包含所有这些表的外键)
这是表格设计:
学生:
Class:
群组
栏目
主要数据:
这些表中的数据:
学生:
Class:
群组:
栏目:
PrimaryData:(它是空的,因为这些都是上表的外键!)
数据库图表:
这里的目标是Select 学生的所有数据使用学生名册号。
我已经为它尝试了以下查询:
SELECT * FROM Student Full Outer Join PrimaryData ON PrimaryData.StuID=Student.StuRollNo where Student.StuRollNo='1001';
SELECT * FROM Student Join PrimaryData ON PrimaryData.StuID=Student.StuRollNo where Student.StuRollNo='1001';
内容如下 Returns:
输出必须有组名称,Class名称和部分名称!
I have tried most of the Solutions Available on Whosebug regarding JOINS But this result always has been the same.
请帮我解决这个问题!
我看到 StuRollNo 是整数,但你把 '1001' 作为字符串。
PrimaryData table 正在映射 table 学生和部门,class 和基于您的 ERD 的小组。在 primarydata 中没有数据的情况下,您如何期望学生的部分、class 和组数据?
将记录插入主数据 table。这对你有用。
insert into primarydata values (1001,'FSC1',1001,'Engg')
添加此条目后,然后修改您的查询并添加部分,class 和组主 tables 以获取名称。
SELECT * FROM Student cross Join PrimaryData ON PrimaryData.StuID=Student.StuRollNo where Student.StuRollNo='1001';
select E.*
FROM Student E
CROSS JOIN PrimaryData P
WHERE P.StuID = E.StuRollNo
and E.StuRollNo = '1001'
由于列之间没有匹配,尝试使用显式连接,如左外连接。