我有3张桌子:课程,教授,学位。
课程表列出了所有正在教授的课程以及被指派教授使用教授ID教授的课程。 教授表列出了所有教授及其一般联系信息。它的主要关键是教授ID。 学位表列出了教授使用他们的教授ID作为外键所持有的所有学位。
我遇到的问题是,当我想要列出每门课程以及指定教授时,以及该教授是否拥有博士学位。如果他们确实返回“Y”,如果不返回“N”。我只想要每位教授一个结果,尽管表中每位教授都有多个参赛作品。
MakeLParam
private int MakeLParam(int LoWord, int HiWord)
{
return ((HiWord << 16) | (LoWord & 0xffff));
}
我想要的结果是:
<html>
<head>
<!-- Material Design Lite -->
<script src="https://code.getmdl.io/1.1.1/material.min.js"></script>
<link rel="stylesheet" href="https://code.getmdl.io/1.1.1/material.indigo-pink.min.css">
<!-- Material Design icon font -->
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
</head>
<body>
<!-- Always shows a header, even in smaller screens. -->
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
<header class="mdl-layout__header">
<div class="mdl-layout__header-row">
<!-- Title -->
<span class="mdl-layout-title">Title</span>
<!-- Add spacer, to align navigation to the right -->
<div class="mdl-layout-spacer"></div>
<!-- Navigation. We hide it in small screens. -->
<nav class="mdl-navigation mdl-layout--large-screen-only">
<a class="mdl-navigation__link" href="">Link</a>
<a class="mdl-navigation__link" href="">Link</a>
<a class="mdl-navigation__link" href="">Link</a>
<a class="mdl-navigation__link" href="">Link</a>
</nav>
</div>
</header>
<div class="mdl-layout__drawer">
<span class="mdl-layout-title">Title</span>
<nav class="mdl-navigation">
<a class="mdl-navigation__link" href="">Link</a>
<a class="mdl-navigation__link" href="">Link</a>
<a class="mdl-navigation__link" href="">Link</a>
<a class="mdl-navigation__link" href="">Link</a>
</nav>
</div>
<main class="mdl-layout__content">
<div class="page-content"><!-- Your content goes here --></div>
</main>
</div>
</body>
</html>
然而,我不断得到教授所拥有的每个学位的成绩;无论是否是博士学位。如下:
ProfessorID Professor
01 Mary Smith
02 Harry Johnson
03 Teddy Fitz
04 Larry Manson
05 Sarah Love
CourseID CourseName ProfessorID
001 Math 101 01
002 English 201 01
003 English101 02
004 Math 101 03
005 Science 101 04
我该如何编码?
答案 0 :(得分:1)
有不同的修复方法。给定最终结果表,您可以使用类似于以下内容的语句来获取您要查找的结果:
SELECT Course, Professor, MAX(Doctorate) as Doctorate
FROM YOUR_RESULTING_TABLE
GROUP BY Course, Professor
字母上的MAX()函数根据字典(字母)顺序返回。
答案 1 :(得分:1)
有很多方法可以达到你想要的效果。我将站点2个例子:
您可以使用LEFT JOIN
+ COALESCE
,因为没有博士学位的教授可以默认为'N':
SELECT
A.CourseName,
B.Professor,
COALESCE(C.Doctorate, 'N')
FROM course_table as A
LEFT JOIN professor_table as B
ON A.ProfessorID = B.ProfessorID
LEFT JOIN degree_table as C
ON B.ProfessorID = C.ProfessorID AND C.Doctorate = 'Y'
更新: