如何创建一个显示来自ISA关系的其他信息的查询

时间:2018-04-02 22:53:03

标签: mysql ms-access ms-access-2016

我有一个星球大战人物数据库和三个表格:

Characters(cname, alias, gender, pname)

Droid(cname, dtype, mainskill)

JediSith(cname, level)

其中DroidJediSithCharacters(非覆盖,无重叠)和cnameDroidJediSith之间存在IS-A关系Characters是引用Characters的外键。

如何创建一个查询来显示来自JediSith的所有信息,以及来自Droidcname(如果适用)的其他信息,用于给定的{{ 1}}?

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

1 个答案:

答案 0 :(得分:0)

使用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