如何创建显示来自 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)
其中 Droid
和 JediSith
与 Characters
具有 IS-A 关系(非覆盖,无重叠),cname
与 Droid
和 JediSith
是引用 Characters
.
的外键
我将如何创建一个查询来显示来自 Characters
的所有信息,以及来自 JediSith
或 Droid
(如果适用)的附加信息,对于给定的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
我有一个星球大战角色的数据库,还有三个 tables:
Characters(cname, alias, gender, pname)
Droid(cname, dtype, mainskill)
JediSith(cname, level)
其中 Droid
和 JediSith
与 Characters
具有 IS-A 关系(非覆盖,无重叠),cname
与 Droid
和 JediSith
是引用 Characters
.
我将如何创建一个查询来显示来自 Characters
的所有信息,以及来自 JediSith
或 Droid
(如果适用)的附加信息,对于给定的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