【发布时间】:2020-05-03 20:42:08
【问题描述】:
我正在开始一个 SQL 速成课程,但我遇到了这个问题,它困扰着我,我找不到解决方案,而且由于锁定,我没有人可以问。这是关于条件表达式的。在这个问题中,有些人演奏不同的乐器,他们偶尔在学校演奏二重奏。如果他们演奏该乐器,我需要找到一个查询来检索带有名称和吉他(是或否)的表。我必须使用以下表格: 表学生
| id | name | grade | gender
+-----+-------------+---------+------
| 1 | John | 12 | M
| 2 | Andrew | 11 | F
| 3 | Abigail | 11 | F
| 4 | Simon | 10 | M
二重唱
| id | idStudent1 | idStudent2 | duetOf
+----+------------+------------+------
| 20 | 1 | 2 | Piano
| 35 | 2 | 4 | Piano
| 36 | 3 | 2 | Drums
| 37 | 4 | 1 | Drums
| 35 | 4 | 2 | Guitar
| 36 | 4 | 2 | Flute
| 37 | 4 | 3 | Piano
查询:
select s.name, Coalesce (d.duets, '(none)')
from students s, duet d
where s.id = d.idStudent1
and s.id = d.idStudeant2
and d.instrument = 'guitar'
关于如何解决此类问题的任何提示?
【问题讨论】:
-
不清楚你想要什么。很高兴您有输入表,但是您期望作为输出的示例可以提供正确的答案。
-
二重奏都是同一种乐器?
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(25 多年前),不鼓励使用它