如何创建显示来自 ISA 关系的附加信息的查询

How to create a query that shows additional information from ISA relationships

我有一个星球大战角色的数据库,还有三个 tables:

Characters(cname, alias, gender, pname)

Droid(cname, dtype, mainskill)

JediSith(cname, level)

其中 DroidJediSithCharacters 具有 IS-A 关系(非覆盖,无重叠),cnameDroidJediSith 是引用 Characters.

的外键

我将如何创建一个查询来显示来自 Characters 的所有信息,以及来自 JediSithDroid(如果适用)的附加信息,对于给定的cname?

目前我有三个查询,每个查询 table,显示每个 table 的相关信息。是否可以将其合并为一个查询?

使用LEFT JOIN将另外两个表连接到Characters:

SELECT c.cname, c.alias, c.gender, c.pname, d.dtype, d.mainskill, j.level
FROM Characters c
LEFT JOIN Droid d ON d.cname = c.cname
LEFT JOIN JediSith j ON j.cname = c.cname

如果你是运行MS Access中的查询,你需要使用括号:

SELECT c.cname, c.alias, c.gender, c.pname, d.dtype, d.mainskill, j.level
FROM (Characters c
      LEFT JOIN Droid d ON d.cname = c.cname)
      LEFT JOIN JediSith j ON j.cname = c.cname