- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
所以我完成了一项家庭作业(下面有提示和更多详细信息),我的其中一个答案如下所示:
SELECT Student.SSN, FirstName, LastName, Section.SectionNo, Section.Instructor
FROM Course Join Enrolls ON Course.CourseNo = Enrolls.CourseNo
JOIN Student ON Student.SSN = Enrolls.SSN
JOIN Section ON Section.SectionNo = Enrolls.SectionNo AND Section.CourseNo = Course.CourseNo
WHERE CourseName = 'Data structure and Algorithms'
我在想,有没有另一种方法可以完成同样的事情,同时又不会让代码看起来那么困惑?是否有更有效或至少是简写的语法方式来完成我所做的事情?
提示:获取参加“数据结构与算法”类(class)的学生的信息(SSN、名字和姓氏)。还可以获取他们在类(class)中注册的部分编号以及该部分的讲师。
这是我的表格的样子:
学生
SSN FirstName LastName Street City State Zip
1237456787 Dilly Dob 1233 Revem Court Sacramento CA 56123
1237456788 Filly Fob 1243 Roasm Road Sacramento CA 21234
1237456789 Billy Bob 1234 Random Lane Sacramento CA 12145
部分
CourseNo SectionNo Instructor
CSC300 1 Prof Cool
CSC300 2 Prof Cool
CSC300 3 Prof Cool
CSC133 2 Prof SuperCool
CSC133 1 Prof SuperCool
CSC133 3 Prof SuperCool
CSC137 2 Prof NotSoCool
注册
SSN SectionNo CourseNo
1237456787 1 CSC300
1237456788 1 CSC300
1237456789 1 CSC300
1237456789 2 CSC133
1237456789 2 CSC137
类(class)
CourseNo CourseName Department
CSC300 Advanced Database Management Systems Computer Science
CSC133 Data Structure and Algorithms Computer Science
CSC137 Computer Organization and Digital Circuits Computer Science
结果应该是
SSN FirstName LastName SectionNo Instructor
123456789 Billy Bob 2 Prof SuperCool
最佳答案
根据描述和限定词,您的查询尽可能少。一些注意事项,特别是对于学习和长期理智。每当在查询中处理多个表时,请养成始终使用 table.column(或 alias.column)限定可读性的习惯,特别是如果表名很长,请应用较短的“别名”。
其次,这更像是一种时尚的格式,非常适合连接以了解事物的来源。 INDENT...而且,在联接中,我总是尝试将我的第一个表列为联接相等性的第一端。稍后在您的教育中阅读和实现 LEFT JOIN 标准时会更容易......
SELECT
S.SSN,
S.FirstName,
S.LastName,
Section.SectionNo,
Section.Instructor
FROM
Course C
Join Enrolls E
ON C.CourseNo = E.CourseNo
JOIN Student S
ON E.SSN = S.SSN
JOIN Section
ON C.CourseNo = Section.CourseNo
AND E.SectionNo = Section.SectionNo
WHERE
C.CourseName = 'Data structure and Algorithms'
注意 enrolls 表是类(class)的子关系。 Student 是 Enrolls 的子关系,但 Section child 也是 Enrolls 的子关系。但是“ON”子句同时查看类(class)表和注册表。
同样,个人学习偏好的查询方式。此外,通过排列所有列,如果您要查找特定的列,请直接向下查看列表并根据需要添加/删除。
此外,对于表格,我强烈建议为 ID 获取自动递增列,尤其是当 SSN(私有(private)信息)可能不正确时,例如非法或没有此类 SSN 可供学生使用。您仍然可以按姓名查找一个人,并让这个内部自动递增成为登记表的基础。如果某人确实有 SSN(或绿卡号、学生签证等),则内部 ID 不会有任何冲突。
关于MySQL - 另一种减少连接数量的方法? - 或简写语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27103356/
我是 Bison 解析的新手,我无法理解它是如何工作的。我有以下语法,其中我保留了最低限度的语法来突出问题。 %left '~' %left '+' %token T_VARIABLE %% star
我链接了 2 个映射器和 1 个缩减器。是否可以将中间输出(链中每个映射器的 o/p)写入 HDFS?我尝试为每个设置 OutputPath,但它似乎不起作用。现在,我不确定是否可以完成。有什么建议吗
我正在编写一些代码来管理自定义磁盘文件结构并将其同步到未连接的系统。我的要求之一是能够在实际生成同步内容之前估计同步的大小。作为一个简单的解决方案,我整理了一个包含完整路径文件名的 map ,作为高效
我来自一个 SQL 世界,其中查找由多个对象属性(published = TRUE 或 user_id = X)完成,并且有 任何地方都没有加入 (因为 1:1 缓存层)。文档数据库似乎很适合我的数据
在 R 中,我有一个整数向量。从这个向量中,我想随机减少每个整数元素的值,以获得向量的总和,即初始总和的百分比。 在这个例子中,我想将向量“x”减少到向量“y”,其中每个元素都被随机减少以获得等于初始
我发现自己遇到过几次我有一个 reducer /组合 fn 的情况,如下所示: def combiner(a: String, b: String): Either[String, String]
Ubuntu 12.04 nginx 1.2.4 avconv版本 avconv version 0.8.10-4:0.8.10-0ubuntu0.12.04.1, Copyright (c) 200
我是 R 编程语言的新手。我有一个包含 2 列(ID 和 Num)的数据集,如下所示: ID Num 3 8 3 12 4 15 4 18 4
我正在使用高阶函数将函数应用于向量中的每个元素并将结果作为标量值返回。 假设我有: v = c(0, 1, 2, 3, 4, 5, 6, 7, 8) 我想计算以左边 5 个整数为中心的所有这些整数的总
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
这个问题在这里已经有了答案: How to write the dataframes in a list to a single csv file (2 个回答) 5年前关闭。 我正在尝试使用 Red
刚开始学习CUDA编程,对归约有些迷茫。 我知道与共享内存相比,全局内存有很多访问延迟,但我可以使用全局内存来(至少)模拟类似于共享内存的行为吗? 例如,我想对长度恰好为 BLOCK_SIZE * T
我经常使用OptiPNG或pngcrush减小PNG图像的文件大小。 我希望能够从.NET应用程序中以编程方式执行此类操作。我正在动态生成要发送到移动设备的PNG,因此我想减小文件大小。 图像质量很重
减少和减少让您在序列上累积状态。 序列中的每个元素都会修改累积的状态,直到 到达序列的末尾。 在无限列表上调用reduce 或reductions 有什么含义? (def c (cycle [0]))
这与R: use the newly generated data in the previous row有关 我意识到我面临的实际问题比我在上面的线程中给出的示例要复杂一些 - 似乎我必须将 3 个
有什么办法可以减少.ttf字体的大小?即如果我们要删除一些我们不使用的glyps。 最佳答案 使用Google Web Fonts,您可以限制字符集,例如: //fonts.googleapis.co
我需要在iOS中制作一个应用程序,在她的工作过程中发出类似“哔”的声音。 我已经使用MPMusicPlayerController实现了与背景ipod的交互。 问题: 由于来自ipod的音乐音量很大,
我有一个嵌套 map m,如下所示: m = Map("电子邮件"-> "a@b.com", "背景"-> Map("语言"-> "英语")) 我有一个数组arr = Array("backgroun
有什么原因为什么不应该转发map / reduce函数中收到的可写内容? 我的意思是-每个map / reduce函数都有一个可写的键/值,并可能发出一个键/值对。如果我想执行一些过滤,我应该只发出接
假设我有一个数据列表 val data = listOf("F 1", "D 2", "U 1", "D 3", "F 10") 我想执行每个元素的给定逻辑。 我必须在外部添加 var acc2 =
我是一名优秀的程序员,十分优秀!