【发布时间】:2019-11-02 16:49:15
【问题描述】:
好的,这听起来像是一个非常基本的问题,但显然有一个基本的解决方案。我不是 SQL 的优秀用户,但我在连接两个表时遇到了问题。最好我向您展示我正在尝试加入的内容:
表 1,学生信息:
+--------------------------------------------+
| NAME ID DEPARTMENT N |
+--------------------------------------------+
| Joe Blogs 234-2 Maths 2 |
| Jane Doe 342-6 Physics 4 |
| John Smith 356-1 Chemistry 7 |
+--------------------------------------------+
表 2,students_grades:
+--------------------------------+
| SUBJECT GRADE N |
+--------------------------------+
| Chemistry B NULL |
| Physics A NULL |
| Maths A NULL |
| Engineering B NULL |
| NULL NULL 2 |
+--------------------------------+
两个表都包含一个名为 N 的列。students_info 表已经自带了,但是我在 students_grades 表中添加了一个列 N,希望我可以加入通过此列的 2 个表。
现在,我对 students_info 中的 Joe 博客 感兴趣,因此我将 2 放在表 students_grades 的 N 列中。因此,我希望获取有关 Joe 博客 和输出的所有信息。然后输出表将显示他的姓名、ID、部门和科目以及成绩。
有人知道我该怎么做吗?前几天有人建议使用外键..?
注意:基本上,students_info 中的每个学生(或行)都有自己的表 students_grades。
我正在寻找的是(在我的脑海中)看起来像的东西:
+----------------------------------------------------------------+
| NAME ID DEPARTMENT SUBJECT GRADE |
+----------------------------------------------------------------+
| Joe Blogs 234-2 Maths Chemistry B |
| Physics A |
| Maths A |
| Engineering B |
+----------------------------------------------------------------+
干杯
【问题讨论】:
-
来自 students_info 的 ID 需要作为外键在 student_grades 中。
-
students_grades 表中的 N=2 在所有其他列中都为 NULL。那么您对 Joe Blogs 的主题和年级专栏有何期望?
-
从本质上讲,students_info 中的每个学生(或行)都有自己的表,students_grades你应该重新考虑这个设计。
-
或者,用与每条记录相关的学生对应的数字填充第二个表中的 N。
-
请参阅How to Ask,点击谷歌搜索“stackexchange 作业”和投票箭头鼠标悬停文本。这表明没有努力通知自己。你能做哪些部分?您的教科书或文档对任何相关内容有什么看法? PS 请在代码问题中提供minimal reproducible example--剪切&粘贴&可运行代码;具有期望和实际输出的示例输入(包括逐字错误消息);标签和明确的规范和解释。 PS 一个“基本上”或“基本上”或“换句话说”,它没有介绍或总结您也给出的清晰、准确和完整的描述,只是意味着“不清楚”。
标签: sql postgresql join